2014-04-23 69 views
1

的IBCollection我的問題是,當我使用快速列舉從我的數組加載的對象,像這樣:加載的NSMutableArray對象插入標籤

for(SetOfObjects *set in _myArray){ 
    NSLog (@"%@"[set anObject]; 
    } 

它會打印出我指定的對象沒有問題,但是當是時候將這些對象分配給標籤的NSArray。最後一個對象返回爲0 像這樣:

for(SetOfObjects *set in _myArray){ 
    for(UILabel *label in _arrayOfLabels){ 
     int i = [set intObject]; 
     NSString *string = [NSString stringWithFormat:@"%i",i]; 
     label.text = string; 
     } 
    } 

我想,我已經錯在這裏。該代碼的作品,但問題是,所有標籤然後設置爲0.

任何提示歡迎。

+0

要設置的所有標籤從_myArray的最後一個元素的值。你不是嗎? – NeverBe

+0

是的,它似乎是這樣,那是我認爲正在發生。 – TinMan7757

+0

'int i = [set intObject];'這一行發生了什麼? – Mani

回答

4

你迭代標籤SetOfObjects實例的時候,其實你想在同一時間,不能使用快速列舉進行遍歷兩個數組。

而是恢復到兩個陣列的索引訪問:

NSInteger count = [_myArray count]; 
NSAssert([_arrayOfLabels count] == count, @"Different array sizes!"); 
for (NSInteger index = 0; index < count; index++) { 
    SetOfObjects *set = _myArray[index]; 
    UILabel *label = _arrayOfLabels[index]; 
    int i = [set intObject]; 
    NSString *string = [NSString stringWithFormat:@"%i",i]; 
    label.text = string; 
} 

注斷言檢查兩個數組大小相同。

編輯:哎呀,i是一個糟糕的變量名選擇指數...

+0

感謝您的反饋,我立即編寫了代碼。在所有。 – TinMan7757