类扩展可以添加@property修饰的属性吗

类扩展可以添加@property修饰的属性吗

我在用类扩展中用property定义了一个属性

在使用时会有not found on object 的错误。

但是类扩展中定义了私有的属性却可以通过get和set获得。

类扩展可以添加@property修饰的属性吗

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
提问者 qq_God_5 2018-01-14 00:34:35

原来理解错了,原来以为@property就像public,可以把对象声明为公有的。其实用@property声明一个变量可以自动生成变量对应的get和set方法。

  • 恩恩,是的。
    2018-01-14 11:26:34
提问者 qq_God_5 2017-12-06 16:24:32
  • 输出语句应该是NSLog(@"%@",k1.hello);因为得有一个%@进行匹配啊。另外,如果想在其他类中调用test类中的方法的话,应该将这个属性在test.h文件中进行声明。如果只是在test.m中进行属性的声明的话,那就只能在test类中进行调用了。
    2017-12-06 16:37:08
  • 提问者 qq_God_5 回复 Tender10 #2
    您好,但是同样我只在m文件中声明私有的属性,不再h文件中声明。却可以通过set和get方法在外部获取到。所以说@property只能写在h文件中不能通过类扩展写在m文件中吗? @interface Person(){ int age; } @end
    2017-12-06 16:47:27
  • Tender10 回复 提问者 qq_God_5 #3
    set、get方法是可以访问到属性的,但是通过点语法是不可以的,并不是说@property只能写在h文件中,如果你只需要在本类中使用这个属性,那就可以在.m中声明属性啊。
    2017-12-06 18:04:32
Tender10 2017-12-06 16:19:39

可以通过@property添加修饰的属性的,你可以将你的代码截个图我看一下,看看什么原因导致的错误。

  • 提问者 qq_God_5 #1
    您好,图片如上
    2017-12-06 16:37:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
iOS入门:基础语法与常用控件
  • 参与学习       1337    人
  • 提交作业       712    份
  • 解答问题       1878    个

很多人都在疑问没有基础该怎么学习iOS开发?不用担心,本路径采用游戏关卡式的教学模式,并且以经典OC与最新Swift双重结合的教学内容,帮助大家快速掌握两种iOS开发语言基础,去掉“零”标签。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师