关于分类不能增加属性的说法

之前一直在用分类,没有为分类增加过属性,只是为分类增加一些方法.有种说法:分类只能增加方法,不能增加属性,要增加属性,只能用延展

事实情况并不是这样:我们完全可以为分类增加属性,下面就来实现一把


再实现这个属性的setter和getter方法(一定要实现,如果不实现,xcode7.2中不会报错,但使用到这个属性的时候就会崩溃,有时间的可以试试,这里就不给出截图了):


分类完成之后,我们开始使用这个分类(在控制器中导入分类,然后创建NSString对象):

从断点可以看出,NSString这个类确实是具有了我们增加的属性:

extendedPropertyName

而且从断点可以看出,可以通过这个属性的getter方法得到这个属性的值


事实上:在我们为分类增加属性时,系统没有为我们自动实现setter和getter方法,所以需要手动实现

这与继承很相似,但不同之处在于,使用分类可以直接用原来的类创建对象,并使用我们增加的属性,这样能让人觉得有种"亲切感"

猜你喜欢

转载自blog.csdn.net/qq_31186665/article/details/51546005
今日推荐