0

我是objective-c的新手。我的对象报告时间在 init 方法中为零。我做错了什么?如何初始化 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

而不是标准的初始化方法。查看更多: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,则不需要保留。

于 2012-05-08T11:47:18.923 回答