2019独角兽企业重金招聘Python工程师标准>>>

今天碰到一个基础问题,需要自定义set方法,本来挺顺利的,定义一个属性

.h文件
@property (nonatomic, strong) NSString *name.m文件
- (void)setName:(NSString*)name
{_name = name;
}

上面这么写大家应该都能理解,即自定义set方法的标准写法。后来属性的名称改了一下,忘记了改set方法,导致设置属性时走不到自定义方法中,搞了半天,终于找到问题,我想说的不是这个,这个只是起因,要说的是解决问题过程中碰到的一个问题:同时使用自定义 get/set 方法的注意点。

或许你认为,这还不简单,如下:

.h文件
@property (nonatomic, strong) NSString *name.m文件
- (void)setName:(NSString*)name
{_name = name;
}
- (NSString*)name
{return _name
}

但实际上,xcode7.2给出了如下错误:

/Users/zoubon/testproject/testpro/testpro/testProperty.m:21:5: Use of undeclared identifier '_name'; did you mean 'name'?

找不到标识符_name,奇怪,_name不就是属性name的别名吗?

确实是,在自定义单独的一个get或set方法时,上面的写法没有问题,但两个同时存在时,就错了,原因暂不深究,就说解决方法吧,一个久远的关键字:@synthesize

@synthesize first = _first

很久以前@synthesize就不用了,编译器自动生成属性的get/set方法,想不到同时自定义时,派上了用场,先写到这里吧,或许还有一些原因或方法我没有想到,后面再补充吧

转载于:https://my.oschina.net/u/2241986/blog/552855

OC 自定义 get/set 方法注意点相关推荐

  1. dede php 调用自定义字段,在dedecms搜索结果列表页调用自定义字段的方法(绝对可用)...

    关于在dedecms搜索结果列表页调用自定义字段的方法比较多有些教程都写得比较含糊,经过织梦者的测试今天推荐一个比较有效的方法给大家,方法是从网络中搜到的,但是绝对可用 打开 include/exte ...

  2. 绝地求生自定义服务器租用,绝地求生自定义服务器怎么开 自定义服务器设置方法...

    绝地求生自定义服务器怎么开呢?自定义服务器已经开启设置了,玩家们可以已自己的方式享受游戏,但一些玩家还不知道自定义服务器设置方法,那下面就来看下吧. 自定义服务器玩法介绍 当创建自己的自定义游戏时,你 ...

  3. 织梦php调用字段,织梦dedecms搜索页调用自定义字段的方法

    这篇文章主要为大家详细介绍了织梦dedecms搜索页调用自定义字段的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. 织梦dedecms搜索页调用自定义字段的 ...

  4. simulink自定义信号源方法matlab数据导入sim

    simulink自定义信号源 方法: https://jingyan.baidu.com/article/e6c8503c7abdb2e54f1a18a0.html https://jingyan.b ...

  5. JS 创建自定义对象的方法

    工厂模式 优点:接受参数,可以无数次的调用这个函数,创建Person对象,而每次他都可以返回一个包含三个属性一个方法的对象. 缺点:虽然解决了创建多个相似对象的问题,但是没有解决对象识别的问题(即怎么 ...

  6. golang 导入自定义包_goLang引入自定义包的方法

    看完golang的基本语法后,为了模块化编程,试用了下golang的包管理,结果真踩了几个坑,总结一下吧. 一. 设置$GOPATH环境变量 golang和C或php不一样,不会自动查找当前路径下的文 ...

  7. android 中Dialog对话框及自定义Dialog的方法

    // 重写方法,让他返回Dialog.// 以下是优化代码的替换,只创建一次,每次点击使用showDialog()的方法,不用每次都创建新的,可以减少内存使用@Overrideprotected Di ...

  8. pccad自定义图框_(PCCAD自定义标题栏详细方法.doc

    PCCAD2011自定义标题栏详细方法 下面以图3-1为例说明标题栏的自定义过程. 图3-1 1.新建文件(用New 命令). 2.用绘图和文字中的相关命令设计出图3-1所示的图形.其中在使用中不变的 ...

  9. wamp2 php配置,wamp安装后自定义配置的方法

    WampServer是目前应用非常广泛的PHP集成开发环境,本文就来讲述Wamp安装后自定义配置的方法.供大家参考借鉴.具体如下: wamp2.5安装完毕后,自己手动重新设置了apache的默认根目录 ...

  10. 自定义控件添加属性_|AutoCAD LT 2019 Mac自定义功能区的方法

    AutoCAD LT是一款非常好用的CAD三维设计绘图软件,最新版本2019拥有改进的桌面.新应用实现跨设备工作流,以及DWG比较等新功能,并且AutoCAD LT 2019 Mac可以根据你的需要和 ...

最新文章

  1. 常用服务的默认端口号
  2. c语言尹宝林答案,c程序设计导引 尹宝林
  3. 微信计步器怎么不计步_难以关闭的微信朋友圈广告
  4. 星益云聚合收银台系统源码
  5. Setup Factory 提示 Invalid start mode : archive filename 的解决办法
  6. 程序员年薪30万,被准丈母娘各种刁难,网友说:分手吧!
  7. linux 应用程序 dma,Linux之DMA API(上)
  8. 使用ImageMagick将eps批量导出为透明png图片
  9. matlab编程测试教程,Matlab实验1 MATLAB的基本操作、编程基础
  10. 百度地图上定位自己所在的位置
  11. 算法竞赛常用STL库
  12. 不只是coding_不只是外表
  13. ElasticSearch---------------------step3,安装Kibana
  14. 目标检测之将bbox绘制到图片上
  15. win7怎么开启文件共享
  16. 顶刊TPAMI 2022!清华刘玉身团队提出SPD:雪花反卷积网络
  17. 《Computer-CPU中央处理器和GPU图形处理器》
  18. xquartz Firefox Error: cannot open display: localhost:14.0
  19. RGB图像转换为BGR
  20. Mac上FDM替代迅雷

热门文章

  1. xcode6以后, 使用.pch
  2. 【转】Java多线程面试问题集锦
  3. win10下JDK安装,配置环境变量后出现error:could not open '...jvm.cfg'
  4. XMLHttpRequest 学习(二)——封装一个ajax
  5. JavaScript 小知识
  6. pthread_mutex_init 互斥锁pthread_mutex_t的使用(转)
  7. (结构型模式)FlyWeight——享元模式
  8. 小技巧收集(10)-JS操作Cookie
  9. Java并发编程:Lock(下)
  10. 入华五周年,微软亮AI、云计算成绩,制定“二五”新战略...