Добавить дату в свойство MKAnnotation title - PullRequest
0 голосов
/ 31 августа 2011

Я следую руководству по программированию Nerd Ranch i0S.Мне нужно пометить аннотации на карте датами их создания.

Следующий метод, который я создал, переопределяет свойство заголовка MKAnnotation:

- (void)setTitle:(NSString *)t
{
    NSDate *today = [NSDate date];
    NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];

    // Obtain copy of passed title.
    [t retain];
    [title release];

    // Set required date format.
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];

    title = [NSString stringWithFormat:@"%@ %@", t, [dateFormatter stringFromDate:today]];
}

Приложение вылетает в последней строке этого метода.Может кто-нибудь помочь, пожалуйста?

Ответы [ 2 ]

1 голос
/ 31 августа 2011

NSString +stringWithFormat возвращает автоматически освобожденный объект - поскольку ничто другое не становится владельцем этого объекта, ваш title освобождается в конце цикла цикла выполнения.Вам нужно вызвать retain для нового значения title, например:

title = [[NSString stringWithFormat:@"%@ %@", t, [dateFormatter stringFromDate:today]] retain];

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

title = [[NSString alloc] initWithFormat:@"%@ %@", t, [dateFormatter stringFromDate:today]];
0 голосов
/ 31 августа 2011

Я не уверен, но поможет ли это, если вы замените строку

[dateFormatter setDateFormat:@"dd-MM-yyyy"]; 

с

[dateFormatter setDateFormat:[NSString stringWithFormat:@"dd-mm-yyyy"]]; 
...