Почему не работает переопределение метода '- (NString *) description' NSDate? - PullRequest
0 голосов
/ 15 мая 2019

Я хочу использовать NSLog объект NSDate и показывать его в настраиваемом форматере даты, например, «yyyy-MM-dd». Поэтому я переопределяю метод - (NSString *) description экземпляра в файле категорий NSDate. Но он не работает. Кто может сказать мне, как я могу это реализовать?

В Objective-c.


@interface NSDate(Test)
@end

@implemetion NSDate(Test)

- (NSString *)description
{
   return @"test";
}
@end


// in the code that will actually run.
{
  NSDate *date = [NSDate date];
  NSLog(@"%@", date);

}

// but it's not print "test" at last. why?


Я ожидаю, что он запускает код, который я переопределил в категории.

1 Ответ

0 голосов
/ 17 мая 2019

NSDate уже имеет поле с именем description

Вы не можете переопределить через категорию / расширение. Используйте метод подкласса ИЛИ swizzling ИЛИ используйте другое имя поля, чтобы избежать столкновения.

...