iOS - 重写set和get方法后,为什么使用时会发生无效?解析命名规范
2016-07-22 15:33
543 查看
今天博主偶然遇到如题的问题,方法写的没错,都是一一对应的,但就是不调用set方法,百度了很多,有人说要强制写@synthesize,还有的说@property有没有写,之类的,既然重写了get,set方法,@property肯定是不会缺失的,都是一些不疼不痒的回答。
博主看了下写出来的效果,发现并非是所有的get,set方法都无效,对比了下,终于发现问题在哪里了,
举例说明:
value对应setValue
preBackgroundColor对应setPreBackgroundColor
property后的属性和set后面的命名必须一样,而且遵循驼峰式命名,错一个字母都不行,驼峰命名错了也不行。
假如:preBackgroundColor对应setpreBackgroundColor(p小写了),错误,无法调用,如果preBackgroundColor和setPreBackgroundColor中的PreBackgroundColor字母不一样也是不行的,只有后面带的参数是可以一样或者不一样的。
所以在重写set和get方法时一定要注意,小写错一个字母,大小写出错都不能成功调用。
想要查看具体使用的请看下篇博客,封装slider
博主看了下写出来的效果,发现并非是所有的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
相关文章推荐
- iOS7 StatusBar 使用小结
- ios 下拉刷新,下拉加载数据 利用第三方
- 用CocoaPods做iOS程序的依赖管理
- ios常用的第三方类库
- iOS---五颗星评分效果编程(详解)
- ios基本语法
- iOS开发之制作@2x和缩小图片
- iOS基础篇
- 解决Alamofire库在iOS7下设置Head无效的问题
- iOS开发masonry的一些使用简介
- 快速集成iOS基于RTMP的视频推流
- iOS 真机调试(无需证书)
- iOS和html5交互遇到的问题
- NSNotification多次执行的问题
- IOS Cookie使用
- 清除 iOS 下 input 表单的阴影
- (0001) iOS 开发之收集第三方资源篇
- iOS地图上WGS84、GCJ-02、BD-09互转解决方案
- iOS 图片压缩
- Xamarin.iOS项目提示error MSB3174:”TargetFrameworkVersion”的值无效