Ответ NSD, я просто попытаюсь повторить простым языком. NSDate
не простой класс, который вы могли бы легко подклассить. Это кластер класса , что вкратце означает, что когда вы получаете значение типа NSDate
, это фактически экземпляр другого частного класса, который имеет тот же интерфейс, что и NSDate
. Другими словами, NSDate
это не то, что вы хотели бы подкласс.
Если вы просто хотите добавить методы (не переменные экземпляра), вы можете легко сделать это, используя категорию:
@interface NSDate (MyExtensions)
- (void) doFoo;
@end
@implementation NSDate (MyExtensions)
- (void) doFoo {
NSLog(@"Foo");
}
@end
Теперь вы можете позвонить [date doFoo]
. См. Также учебник по подклассам кластера класса , автор Mike Ash.