Fra*_*gel 5 objective-c designated-initializer
从Adapting Modern Objective-C文档:
如果类提供一个或多个指定的初始值设定项,则它必须实现其超类的所有指定初始值设定项.
这意味着如果我有一个子类NSObject具有自己的指定初始化器,比如说
- (instancetype)initWithImage:(UIImage*)image NS_DESIGNATED_INITALIZER;
Run Code Online (Sandbox Code Playgroud)
那么我还需要提供NSObjects的实现-init.我应该怎么做才能将-init初始化程序标记为"无效",即没有人应该调用它而是使用它-initWithImage:?这里最好的做法是什么?
我尝试了这里描述的技术.
但是,当我在接口中标记超类-init方法时unavailable,编译器仍然告诉我需要覆盖超类的初始化器.
当我尝试其他技术,即引发异常或调用-doesNotRecognizeSelector:内部时-init,我收到一条错误,指出我需要调用我指定的初始化程序之一.
| 归档时间: |
|
| 查看次数: |
165 次 |
| 最近记录: |