比方說,我有以下標題:OBJ-C - 從一個類層次結構得到一個類名
@interface SuperClass : NSObject
@interface SubClass : SuperClass
我做alloc'ing的類的實例:
SubClass *sc = [[SubClass alloc] init];
在我的SuperClass.m中:
- (id) init
{
self = [super init];
if (self != nil)
{
NSString *cString = NSStringFromClass([self class]);
}
return self;
}
簡單吧?我的問題是:我如何獲得cString返回SuperClass類,而不是SubClass類? 由於子類被分配/初始化,這是不可能的嗎?
謝謝!
有各種各樣的方法來完成這一點,最簡單的是卡爾的建議,如果你總是想要相同的字符串,只需使用靜態字符串。如果你想在這裏解決一些更深層次的問題,可以讓我們參與進來,這樣我們可以爲如何去做提供更好的建議。 – Chuck 2010-06-08 23:15:07
同意查克。我想不出有什麼理由需要知道supeclass的名字。也許有更好的辦法來處理你想要的東西。 – JeremyP 2010-06-09 07:32:28