iOS开发重写set和get方法后,为什么使用时会发生无效?解析命名规范

释放双眼,带上耳机,听听看~!

今天博主偶然遇到如题的问题,方法写的没错,都是一一对应的,但就是不调用set方法,百度了很多,有人说要强制写@synthesize,还有的说@property有没有写,之类的,既然重写了get,set方法,@property肯定是不会缺失的,都是一些不疼不痒的回答。

博主看了下写出来的效果,发现并非是所有的get,set方法都无效,对比了下,终于发现问题在哪里了,


举例说明:

.h中声明
/**
*  值
*/
@property(nonatomic,assign)CGFloat value;
/**
*  值为0时slider颜色
*/
@property(nonatomic,strong)UIColor *preBackgroundColor;
/**
*  进度条setter方法
*
*  @param value 进度
*/
- (void)setValue:(CGFloat)value;
/**
*  设置进度条底色
*
*  @param preBackgroundColor 颜色
*/
- (void)setPreBackgroundColor:(UIColor *)preBackgroundColor;
.m中实现
- (void)setValue:(CGFloat)value
{
_value = value;
_sliderBtn.center = CGPointMake(_value * _baseView.bounds.size.width , _baseView.center.y);
_lastSliderView.frame = CGRectMake(0, 0, _sliderBtn.center.x, 20);
}
- (void)setPreBackgroundColor:(UIColor *)preBackgroundColor
{
_preBackgroundColor = preBackgroundColor;
_preSliderView.backgroundColor = _preBackgroundColor;
}

value对应setValue
preBackgroundColor对应setPreBackgroundColor

property后的属性和set后面的命名必须一样,而且遵循驼峰式命名,错一个字母都不行,驼峰命名错了也不行。

假如:preBackgroundColor对应setpreBackgroundColor(p小写了),错误,无法调用,如果preBackgroundColor和setPreBackgroundColor中的PreBackgroundColor字母不一样也是不行的,只有后面带的参数是可以一样或者不一样的。

所以在重写set和get方法时一定要注意,小写错一个字母,大小写出错都不能成功调用。

想要查看具体使用的请看下篇博客,封装slider

人已赞赏
iOS文章

iOS开发用Masonry封装的slider,完全支持Masonry的适配

2021-2-3 5:55:11

iOS文章

iOS开发调用相机连续拍照

2021-2-3 7:10:03

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索