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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 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

目录
相关文章
|
26天前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
41 3
|
2月前
|
IDE Android开发 iOS开发
深入解析Android与iOS的系统架构及开发环境差异
本文旨在探讨Android和iOS两大主流移动操作系统在系统架构、开发环境和用户体验方面的显著差异。通过对比分析,我们将揭示这两种系统在设计理念、技术实现以及市场策略上的不同路径,帮助开发者更好地理解其特点,从而做出更合适的开发决策。
155 2
|
2天前
|
Java Windows
IDEA不使用lombok,如何快速生成get和set方法
【11月更文挑战第10天】在 IntelliJ IDEA 中生成 `get` 和 `set` 方法有多种方式:通过菜单操作、使用快捷键或自定义模板。菜单操作包括选择“Code”菜单中的“Generate...”,快捷键为“Alt + Insert”。自定义模板可在“File”->“Settings”->“Editor”->“Code Style”->“Java”中设置。批量生成时,可多选变量一次性生成。
|
20天前
|
Rust Java
set 方法是坏味道?
【10月更文挑战第19天】
25 5
|
1月前
|
开发工具 Android开发 iOS开发
深入解析安卓与iOS开发环境的优劣
【10月更文挑战第4天】 本文将深入探讨安卓和iOS两大主流移动操作系统的开发环境,从技术架构、开发工具、用户体验等方面进行详细比较。通过分析各自的优势和不足,帮助开发者更好地理解这两个平台的异同,从而为项目选择最合适的开发平台提供参考。
22 3
|
15天前
|
安全 5G Android开发
安卓与iOS的较量:技术深度解析
【10月更文挑战第24天】 在移动操作系统领域,安卓和iOS无疑是两大巨头。本文将深入探讨这两个系统的技术特点、优势和不足,以及它们在未来可能的发展方向。我们将通过对比分析,帮助读者更好地理解这两个系统的本质和内涵,从而引发对移动操作系统未来发展的深思。
30 0
|
1月前
|
安全 Android开发 iOS开发
深入解析:安卓与iOS的系统架构及其对应用开发的影响
本文旨在探讨安卓与iOS两大主流操作系统的架构差异,并分析这些差异如何影响应用开发的策略和实践。通过对比两者的设计哲学、安全机制、开发环境及性能优化等方面,本文揭示了各自的特点和优势,为开发者在选择平台和制定开发计划时提供参考依据。
51 4
|
27天前
|
存储
ES6中的Set数据结构的常用方法和使用场景
ES6中的Set数据结构的常用方法和使用场景
|
1月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
66 0
|
1月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
52 0

热门文章

最新文章

推荐镜像

更多