2012-05-08 12 views
0

私はobjective-cに新しいです。私のオブジェクトreportingTimeはinitメソッドでnilです。私が間違っていることは何ですか? reportingTimeを初期化して最初の週を設定するにはどうすればよいですか?Objective-c:インスタンスを初期化するvar

I持って、次のインタフェースと実装

マイインタフェースファイルCalculation.h

@interface Calculate : NSObject { 

NSCalendar *reportingTime; 
.... 
.... 
} 
@property NSCalendar *reportingTime; 

@end 

そして、私の実装ファイルCalculate.m

#import "Calculate.h" 

@implementation Calculate 

@synthesize reportingTime; 

- (id)init 
{ 
    if(self = [super init]) { 
     reportingTime = [[NSCalendar alloc] init]; 
     [reportingTime setFirstWeekday:1]; 

     // reportingTime is nil ?????? 
    } 
    return self; 
} 

答えて

0

代わりの

reportingTime = [[NSCalendar alloc] init]; 

使用:これは@propertyのIVARに直接割り当てであり、[NSCalendar currentCalendar]が自動解放VARを返す便利な方法であるため

reportingTime = [[NSCalendar currentCalendar] retain]; 

ザが保持しています。 ARCを使用している場合、保持は必要ありません。代わりに、スタンダールinitメソッドの

+0

それはそれは私がそれを変更した計算であるタイプミスだったが、それでも – baliman

+0

おかげで、動作していないと、なぜCalculate.mでの#import「Calculate.m」はありますか? – baliman

関連する問題