我需要向 UIViewController 添加一个实例变量和两个使用该实例变量的方法。我在类扩展中为变量添加了一个属性。然后我为具有方法名称的 UIViewController 创建了一个类别。类别头文件导入类扩展。
要使用该类别,我将其导入我自己的自定义视图控制器中。但是,当我调用其中一种类别方法(使用扩展中声明的属性)时,它会崩溃。
我可以通过在 UIViewController 的子类中合成属性来解决这个问题,但我认为这些应该自动合成。
我错过了什么吗?
UIViewController_CustomObject.h(扩展头文件)
#import <UIKit/UIKit.h>
#import "CustomObject.h"
@interface UIViewController ()
@property (nonatomic, strong) CustomObject *customObject;
@end
UIViewController+CustomObject.h(类别标题)
#import <UIKit/UIKit.h>
#import "UIViewController_CustomObject.h"
@interface UIViewController (CustomObject)
- (void)customMethod;
@结尾
UIViewController+CustomObject.m(分类实现)
#import "UIViewController+CustomObject.h"
@implementation UIViewController (CustomObject)
- (void)customMethod
{
[self.customObject doSomething];
}
@结尾