0

私はobjective-cが初めてです。私のオブジェクトReportingTimeはinitメソッドでnilです。私が間違っていることは何ですか?ReportingTime を初期化して firstweekday を設定するにはどうすればよいですか?

次のインターフェースと実装があります

私のインターフェースファイル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;
}
4

2 に答える 2

1

使用する

- (id)initWithCalendarIdentifier:(NSString *)string

標準の init メソッドの代わりに。詳細: https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSCalendar_Class/Reference/NSCalendar.html

于 2012-05-08T11:49:03.530 に答える
0

それ以外の

reportingTime = [[NSCalendar alloc] init];

使用する:

reportingTime = [[NSCalendar currentCalendar] retain];

これは @property ivar への直接割り当てであり[NSCalendar currentCalendar]、自動解放された var を返す便利なメソッドであるため、保持します。ARC を使用している場合、retain は必要ありません。

于 2012-05-08T11:47:18.923 に答える