Изменение NSDate на пользовательский объект? - PullRequest
0 голосов
/ 06 сентября 2011

Мое приложение имеет пользовательский объект, который содержит NSDate. Я хочу изменить это NSDate в моем приложении, но это невозможно?

Код:

Итак, это метод из моего объекта, который должен изменять дату в зависимости от другой переменной (sentcount):

(void)increaseSentAttempts
{
sentCount++;

NSDate *cal = [NSDate date];

if (sentCount < 3) {
    //add 1 minute
    cal = [cal dateByAddingTimeInterval:60];
}
else if(sentCount < 10)
{
    //add 5 minutes
    cal = [cal dateByAddingTimeInterval:300];
}
else if(sentCount < 23)
{
    //add 1 hour
    cal = [cal dateByAddingTimeInterval:3600];
}
else {
    //add 15 hours
    cal = [cal dateByAddingTimeInterval:54000];
}


//sæt nextsent attribut
nextSendAttempt = cal;

}

nextSendAttempt - это мой NSDate в пользовательском объекте. Но, видя, как приложение вылетает, nextsendattempt = cal; невозможно.

Ответы [ 2 ]

2 голосов
/ 06 сентября 2011

Вы установили свойство для NSDate-Member вашего пользовательского объекта?

@interface MyClass : NSObject
{
    NSDate *myDate;
}
@property (retain) NSDate *myDate;
@end;

Чтобы изменить это значение:

MyClass *obj = ...;
NSDate *newDate = ...;
NSLog(@"oldDate: %@",obj.myDate);
obj.myDate = newDate;
NSLog(@"newDate: %@",obj.myDate);
0 голосов
/ 06 сентября 2011

Глупый тупой я. Мне нужно было написать:

self.nextSendAttempt = cal;

Это будет отлично работать.

Извините, что потратил ваше время:)

...