我有一個MyObject。當我的程序運行時,我創建一個新的MyObject初始化方法
self.myObject = [[MyObject alloc] initWithStuff:stuff];
以後在我的代碼中,我需要創建一個新的MyObject。
我的問題是,我需要用「init」方法創建一個新的MyObject嗎?
.h
#import <UIKit/UIKit.h>
@interface MyObject : NSObject
{}
-(id)initWithStuff:(NSString *)stuff;
-(id)initWithNewStuff:(NSString *)newStuff;
-(id)newObjectWithStuff:(NSString *)newStuff;
@end
.m
-(id)initWithStuff:(NSString *)stuff;
{
if (self = [super init])
{
self.myStuff = stuff;
}
return self;
}
-(id)initWithNewStuff:(NSString *)newStuff;{
if (self = [super init])
{
self.myStuff = newStuff;
}
return self;
}
-(id)newObjectWithStuff:(NSString *)newStuff;
{
self.myStuff = newStuff;
return self;
}
或者我可以使用非初始化方法來創建它嗎?
在我的代碼:
self.myObject = [[MyObject alloc] initWithNewStuff:newStuff];
或
self.myObject = [self.myObject newObjectWithStuff:newStuff];
我想我的問題歸結爲:這是什麼
if (self = [super init])
嗎?
使用其他對象如字典,我知道「NSDictionary * myDict = myOtherDict」是完全有效的。