請看看這段代碼剪斷問題有關isKindOfClass
爲什麼,當我看到我的控制檯上,我得到
2011-09-06 23:08:00.917 soap-test[2133:207] Not Yeah
我是初學者,我完全糊塗了.. :s當我查看調試器時,變量類型是SoapArray(誰是FlyNetArrayOfDataSet的父類)。
我使用SoapArray中的一個方法來啓動我的'datasets'實例,這意味着該類自動定義爲Soap而不是FlyNetArrayOfDataSet?!
謝謝
編輯:我犯了一個錯誤,這不是NSArray的,但它繼承SoapArray
這是類FlyNetArrayOfDataSet
#import "Soap.h"
@interface FlyNetArrayOfDataSet : SoapArray
{
}
+ (NSMutableString*) serialize: (NSArray*) array;
@end
的頭文件,但沒有解釋我爲什麼KindOfClass返回false ..
編輯2:好吧我有我的問題的迴應..
我用這個方法來初始化我的實例
FlyNetArrayOfDataSet * arr = [FlyNetArrayOfDataSet arrayWithObject:data];
這是創建SoapArray(助手)的實例超SoapArray的靜態方法..但不FlyNetArrayOfDataSet(!)的一個實例
看看它的實現:
+ (id)arrayWithObjects:(id)firstObj, ...{
SoapArray* a = [SoapArray array];
id eachObject;
va_list argumentList;
if (firstObj) {
[a.items addObject: firstObj];
va_start(argumentList, firstObj);
while (eachObject = va_arg(argumentList, id)) {
[a.items addObject: eachObject];
}
va_end(argumentList);
}
return a;
}
如果我初始化我的情況是這樣
FlyNetArrayOfDataSet * arr = [[FlyNetArrayOfDataSet alloc] init];
這是完美的工作和方法isKindOfClass :-)
有了父類,你的意思是對象的類還是超類?你不應該子類NSArray。 – 2011-09-06 21:22:34
給出一個你調用這個方法的例子。只是因爲方法想要某種類型的對象並不意味着這是你給出的類型。 – PengOne
WTP說的是正確的,永遠不會從類集羣中分類出來。它會導致痛苦和不穩定的軟件。 – JustSid