我收到錯誤「未聲明的標識符」的註釋行:爲什麼同一個類中定義的函數會被視爲未聲明?如何正確申報?
- (BOOL) isInIntArray:(NSInteger[])array theElem:(int)elem{
int i = 0;
NSInteger sizeOfArray = (sizeof array)/(sizeof array[0]);
while(i < sizeOfArray){
if(array[i] == elem){
return TRUE;
}
i++;
}
return FALSE;
}
- (int)getNextUnusedID{
int i = rand()%34;
while ([isInIntArray:idsUsed theElem:i]) { //here: Use of undeclared identifier 'isInIntArray'
i = rand()%34;
}
return i;
}
我真的不明白爲什麼,他們是在同一個.m
文件。 爲什麼會這樣?
此外,此代碼:
NSInteger sizeOfArray = (sizeof array)/(sizeof array[0]);
是給我的警告:
的sizeof對數組函數將返回的sizeof 'NSInteger的*'(又名: '詮釋*'),而不是「 NSInteger的[]'」
我應該如何正確地確定數組的大小?
整個方法是錯誤的。它不以這種方式工作。我想你來自一些腳本語言或C++。你應該使用對象('NSArray'和'NSNumber')。 – Tricertops 2013-04-22 12:32:46
第二個問題:警告應該不言自明:您的變量數組不是數組,而是一個指向數組的指針,因此sizeof將爲您提供指針的大小。 – 2013-04-22 12:39:52