nap*_*aza 5 cocoa-touch objective-c init ios
是否有一个总是在Cocoa中调用的方法?许多类都有init或者initWith,但更糟糕的是它们可以从笔尖或其他东西加载.在这种情况下,我不想在周围找到它是如何做到的.我只是想设置一些初始变量和其他的东西,我想一个方法子类,我可以依靠不管它是一个UIView,UIViewController或者UITableViewCell等
不,没有这样的方法. init来自NSObject所以每一个对象都可以使用它,以及子类定义自己的初始化方法. UIView例如,定义initWithFrame:并且还有来自协议的init方法,例如NSCoding定义的方法initWithCoder:.这是Objective-C的动态特性,任何东西都可以随时扩展.话虽如此,有一些模式. UIViewController几乎总是需要initWithNibName:bundle:,UIView几乎总是需要initWithFrame:或initWithCoder:.我所做的是制作一个内部初始化方法,让其他人调用它.
- (void)initialize
{
//Do stuff
}
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if(self)
{
[self initialize];
}
}
- (id)initWithCoder:(NSCoder *)aCoder
{
self = [super initWithCoder:aCoder];
if(self)
{
[self initialize];
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3879 次 |
| 最近记录: |