這裏就是我想要做的事:聲明中ObjC子類失敗
我要放好一些方法爲單獨的.h和.m文件爲我的代碼更好的概述。
所以基本上我有myViewController
,我想擴展方法myReactionOnAnimationDidEnd:
作爲類別。
所以我在"myCustomClasses.h"
宣佈以下將它與我期望的方法擴展:
#import "myViewController.h"
@interface myViewController (myReactionOnAnimationDidEnd)
- (void)myReactionOnAnimationDidEnd:(NSNotification *)aNotification;
@end
在"myCustomClasses.m"
實現是:
#import "myCustomClasses.h"
#import "myViewController.h"
@implementation myViewController (myReactionOnAnimationDidEnd)
- (void)myReactionOnAnimationDidEnd:(NSNotification *)aNotification {
self.myLabel1.text = @"Test";
}
@end
編譯器會引發一個編譯失敗的錯誤「無法找到接口'myViewController'的聲明「
所以這裏是我的問題:
第一個奇怪的是,這一切工作正常,如果我這樣做完全一樣的,而不是的UIViewController的myViewController。但由於myViewController是UIViewController的子類,它爲什麼不能用於myViewController(@interface iSnahViewController:UIViewController)呢?
另一個奇怪的是,如果我完全跳過@declaration,「myCustomClasses.m」中的@implementation工作得很好。現在怎麼可能?
謝謝各位! 任何幫助非常感謝! 漢斯
現在,有趣的是,這很同一棟樓錯誤出現,即使我創建一個新文件的類別 - > ObjC - 類別模板。它基本上創建了以下兩個文件:
在頭文件:
#import "myViewController.h"
@interface myViewController (myCategories) //<-- "Cannot find interface declaration for 'myViewController'"
@end
,並與.m文件
#import "myViewController+myCategories.h"
@implementation myViewController (myCategories)
@end
而這已經足夠了,從上面調出錯誤。
目前還不清楚myViewController和iSnahViewController之間的關係。另外,編譯器錯誤在哪裏發生? –
你可能想重新提出你的問題,因爲你不是創建一個子類,而是創建一個類別。 – Martin
@PhillipMills:對不起,我爲了更好的可讀性而調整了名字,iSnahViewController是myViewController(我在我的問題中調整了它) – Hans