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方法声明,但是不会生成方法的具体实现;
- 编译可以通过,无报错提示,只有警告⚠️
- 程序运行起来,不使用weight的setter和getter方法,不会出现crash。