2
我想創建NSNotification
的子類。 我不想創建一個類別或其他任何東西。繼承自NSNotification
正如你可能知道NSNotification
是類簇,像NSArray
或NSString
。
我知道,集羣類的子類需要:
- 聲明自己的存儲
- 覆蓋超
- 覆蓋的所有初始化方法超類的原始方法(如下所述)
這是我的子類(沒有什麼幻想):
@interface MYNotification : NSNotification
@end
@implementation MYNotification
- (NSString *)name { return nil; }
- (id)object { return nil; }
- (NSDictionary *)userInfo { return nil; }
- (instancetype)initWithName:(NSString *)name object:(id)object userInfo:(NSDictionary *)userInfo
{
return self = [super initWithName:name object:object userInfo:userInfo];
}
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
return self = [super initWithCoder:aDecoder];
}
@end
當我使用它,我得到一個非凡:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** initialization method -initWithName:object:userInfo: cannot be sent to an abstract object of class MYNotification: Create a concrete instance!'
還有什麼我必須爲了從NSNotification
繼承呢?
不要調用超類初始化 - 例如 - 請參見[如果我想添加類型化屬性,請將NSNotification的子類化爲正確路由](http://stackoverflow.com/questions/7572059/is-subclassing -nsnotification-the-right-route-if-i-want-to-add-typed-properties) – Paulw11 2015-02-06 01:21:41
感謝您的迴應!這就是我一直在尋找的! – 7ynk3r 2015-02-06 01:45:10