iOS - 方法(在另一个类中)执行两次

时间:2014-03-24 17:09:26

标签: ios objective-c function

appControllerviewController <{1}}致电viewDidLoad

@implementation viewController
    - (void)viewDidLoad { [super viewDidLoad];
        NSLog(@"viewDidLoad");
        [appController initialize];
    }
@end

@implementation appController
    + (void)initialize {
        NSLog(@"initialize");
    }
@end

我希望initialize执行一次。但是,正如在控制台中看到的那样,它被执行了两次。

log output

这是一个错误还是我错过了什么?

1 个答案:

答案 0 :(得分:4)

+(void)initialize是第一次引用类时由Objective-C运行时调用的方法。

你永远不应该自己打电话,永远不要打电话给超级。

如果您希望在数据控制器上执行设置,请覆盖init。

Here's a similar answer