美文网首页
面试题:Category类别增加一个属性,不实现setter,g

面试题:Category类别增加一个属性,不实现setter,g

作者: 巴糖 | 来源:发表于2021-03-23 16:25 被阅读0次

Q:Category类别增加一个属性,不实现setter,getter方式,是否会崩溃?

代码验证

#import "ViewController.h"

NS_ASSUME_NONNULL_BEGIN

@interface ViewController (Test)

@property (nonatomic, assign) int weight;

@end

NS_ASSUME_NONNULL_END
#import "ViewController+Test.h"

@implementation ViewController (Test)

@end

Xcode系统警告

Property 'weight' requires method 'weight' to be defined
- use @dynamic or provide a method implementation in this category

属性'weight'需要定义方法'weight'
- 使用@dynamic或在这个类别中提供一个方法实现

Property 'weight' requires method 'setWeight:' to be defined
- use @dynamic or provide a method implementation in this category

属性'weight'需要定义方法'setWeight:'
- 使用@dynamic或在这个类别中提供一个方法实现

总结

类别自动生成setter、getter方法声明,但是不会生成方法的具体实现;

  1. 编译可以通过,无报错提示,只有警告⚠️
  2. 程序运行起来,不使用weight的setter和getter方法,不会出现crash。

相关文章

网友评论

      本文标题:面试题:Category类别增加一个属性,不实现setter,g

      本文链接:https://www.haomeiwen.com/subject/kfvfhltx.html