我有下面的代碼,我認爲將足夠聰明,用for語句填充NSMutableArray與NSNumbers。我想實現的是傳遞一個像32這樣的數字的方法,然後讓它返回一個從1到32的數字數組,我可以在我的選擇器中顯示數字。以下是我有:如何使用for語句在目標C中用NSNumbers填充數組?
+(NSMutableArray *) getFeetDownArray:(NSInteger)i{
NSMutableArray *feetDownArray = [[NSMutableArray alloc]initWithObjects:nil];
for (NSInteger Int=1;Int<=i;Int++)
{
NSNumber *myNumber = [NSNumber alloc];
[myNumber initWithInt:Int];
[feetDownArray addObject:myNumber];
[myNumber release];
}
return feetDownArray;
}
現在,當我打電話[MyClass的getFeetDownArray:32],並將其分配到一個數組,我希望收到[myArray的數]返回33作爲計數,但我什麼都沒有。任何人都可以看到我在這裏做錯了嗎?當我聲明* feetDownArray時,我也嘗試在initWithObjects的末尾刪除nil,但它仍然不起作用。我在xcode中也沒有遇到任何錯誤,只是沒有返回數組的數量,我沒有任何項目可以顯示在我的選擇器中。
不要割斷你的'+ alloc'和'-init'消息。這不會解決你所看到的問題,但是不要這樣做。 :) –
另一件事,'返回[feetDownArray autorelease]'。如果你想保持它比本地範圍更長,那麼將它保留在調用者中。根據調用getFeetDownArray的方式,您的代碼可能是正確的,但約定是大多數函數不會將返回值的所有權傳遞給調用者。 – morningstar
是的,不要用像「Int」這樣的關鍵字來命名變量,爲你的局部變量選擇另一個名字。而且,不要使用Titlecase命名變量,而應使用camelCase(第一個字母爲小寫)。請參閱可可命名約定 – AliSoftware