私は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;
}
また、非初期化メソッドを使用して作成することはできますか?私のコードで
:
if (self = [super init])
は何をするのか:
self.myObject = [[MyObject alloc] initWithNewStuff:newStuff];
または
self.myObject = [self.myObject newObjectWithStuff:newStuff];
私は私の質問は、に帰着すると思いますか?
辞書などの他のオブジェクトを扱う場合、「NSDictionary * myDict = myOtherDict」は完全に有効です。