2014-02-17 62 views
2

我被卡在一個很小的點。我想從數組中顯示虛擬數據到tableView。但我總是隻在所有索引路徑上獲得最後一個對象。我不知道爲什麼它是最後一個對象覆蓋NsmutableArray只顯示在所有索引路徑添加的最後一個對象

-(NSMutableArray *)clubTypes 
{ 
    NSMutableArray *clubTypeDataArray=[[NSMutableArray alloc]init]; 
    ClubTypeDC *clubTypes = [[ClubTypeDC alloc] init]; 
// slideMenu_dataArray = [[NSMutableArray alloc] init]; 
    clubTypes.clubTypeID = 1; 
    clubTypes.clubTypeTitle = @"Hot tonight"; 
    clubTypes.clubTypeImage = @"icon_hot_tonight.png"; 
    clubTypes.clubTypeSelectedImage = @"icon_hot_tonight_touch.png"; 
    [clubTypeDataArray addObject:clubTypes]; 

    clubTypes.clubTypeID = 2; 
    clubTypes.clubTypeTitle = @"Lounges"; 
    clubTypes.clubTypeImage = @"icon_lounges.png"; 
    clubTypes.clubTypeSelectedImage = @"icon_lounges_touch.png"; 
    [clubTypeDataArray addObject:clubTypes]; 

    clubTypes.clubTypeID = 3; 
    clubTypes.clubTypeTitle = @"Pubs/Sports bars"; 
    clubTypes.clubTypeImage = @"icon_pubs.png"; 
    clubTypes.clubTypeSelectedImage = @"icon_pubs_touch.png"; 
    [clubTypeDataArray addObject:clubTypes]; 

    clubTypes.clubTypeID = 4; 
    clubTypes.clubTypeTitle = @"Shesha bars"; 
    clubTypes.clubTypeImage = @"icon_shisha_bars.png"; 
    clubTypes.clubTypeSelectedImage = @"icon_shisha_bars_touch.png"; 
    [clubTypeDataArray addObject:clubTypes]; 

    clubTypes.clubTypeID = 5; 
    clubTypes.clubTypeTitle = @"Ladies night"; 
    clubTypes.clubTypeImage = @"icon_ladies_night.png"; 
    clubTypes.clubTypeSelectedImage = @"icon_ladies_night_touch.png"; 
    [clubTypeDataArray addObject:clubTypes]; 

    clubTypes.clubTypeID = 6; 
    clubTypes.clubTypeTitle = @"Music festivals"; 
    clubTypes.clubTypeImage = @"icon_music_festivals.png"; 
    clubTypes.clubTypeSelectedImage = @"icon_music_festivals_touch.png"; 
    [clubTypeDataArray addObject:clubTypes]; 

    clubTypes.clubTypeID = 7; 
    clubTypes.clubTypeTitle = @"Boat parties"; 
    clubTypes.clubTypeImage = @"icon_boat_parties.png"; 
    clubTypes.clubTypeSelectedImage = @"icon_boat_parties_touch.png"; 
    [clubTypeDataArray addObject:clubTypes]; 

    clubTypes.clubTypeID = 8; 
    clubTypes.clubTypeTitle = @"Evening brunches"; 
    clubTypes.clubTypeImage = @"icon_evening_brunches.png"; 
    clubTypes.clubTypeSelectedImage = @"icon_evening_brunches_touch.png"; 
    [clubTypeDataArray addObject:clubTypes]; 

    clubTypes.clubTypeID = 9; 
    clubTypes.clubTypeTitle = @"Beach/ Description"; 
    clubTypes.clubTypeImage = @"icon_beach_parties.png"; 
    clubTypes.clubTypeSelectedImage = @"icon_beach_parties_touch.png"; 
    [clubTypeDataArray addObject:clubTypes]; 

    clubTypes.clubTypeID = 10; 
    clubTypes.clubTypeTitle = @"Configuration"; 
    clubTypes.clubTypeImage = @"icon_configuration.png"; 
    clubTypes.clubTypeSelectedImage = @"icon_configuration_touch.png"; 
    [clubTypeDataArray addObject:clubTypes]; 

    clubTypes.clubTypeID = 11; 
    clubTypes.clubTypeTitle = @"About Unighted"; 
    clubTypes.clubTypeImage = @"icon_about.png"; 
    clubTypes.clubTypeSelectedImage = @"icon_about_touch.png"; 
    [clubTypeDataArray addObject:clubTypes]; 

// [clubTypeDataArray addObject:clubTypes]; 

    return clubTypeDataArray; 

} 

請幫我在哪裏出了問題。

+1

你需要'clubTypes = [[ClubTypeDC alloc] init];'每一次 – Akhilrajtr

回答

2

因爲你沒有創建新的對象,所以你只需不斷地添加和修改同一個對象。

而是執行此操作:

-(NSMutableArray *)clubTypes 
{ 
    NSMutableArray *clubTypeDataArray=[[NSMutableArray alloc]init]; 
    ClubTypeDC *clubTypes = [[ClubTypeDC alloc] init]; 
// slideMenu_dataArray = [[NSMutableArray alloc] init]; 
    clubTypes.clubTypeID = 1; 
    clubTypes.clubTypeTitle = @"Hot tonight"; 
    clubTypes.clubTypeImage = @"icon_hot_tonight.png"; 
    clubTypes.clubTypeSelectedImage = @"icon_hot_tonight_touch.png"; 
    [clubTypeDataArray addObject:clubTypes]; 

    clubTypes = [[ClubTypeDC alloc] init]; 
    clubTypes.clubTypeID = 2; 
    clubTypes.clubTypeTitle = @"Lounges"; 
    clubTypes.clubTypeImage = @"icon_lounges.png"; 
    clubTypes.clubTypeSelectedImage = @"icon_lounges_touch.png"; 
    [clubTypeDataArray addObject:clubTypes]; 

    clubTypes = [[ClubTypeDC alloc] init]; 
    clubTypes.clubTypeID = 3; 
    clubTypes.clubTypeTitle = @"Pubs/Sports bars"; 
    clubTypes.clubTypeImage = @"icon_pubs.png"; 
    clubTypes.clubTypeSelectedImage = @"icon_pubs_touch.png"; 
    [clubTypeDataArray addObject:clubTypes]; 

    ... 
} 
+0

是啊像老闆一樣工作..謝謝 – NullData

+0

你能告訴我這是什麼原因嗎? – NullData

+0

你在數組中的每個位置都有相同的對象,你只是修改它的屬性。當你修改它時,它會修改每個元素,因爲它們是相同的,一遍又一遍地添加。使用建議的解決方案,您可以在每一步中創建一個新實例,因此當您更改它時,其餘部分不會受到影響。 – Levi

1

您需要實例化新對象每次ClubTypeDC,否則你將編輯的同一個對象引用的屬性。這就是爲什麼在陣列中的所有元素獲取與上次更新數據

-(NSMutableArray *)clubTypes 
{ 
    NSMutableArray *clubTypeDataArray=[[NSMutableArray alloc]init]; 
    ClubTypeDC *clubTypes = [[ClubTypeDC alloc] init]; 
    clubTypes.clubTypeID = 1; 
    clubTypes.clubTypeTitle = @"Hot tonight"; 
    clubTypes.clubTypeImage = @"icon_hot_tonight.png"; 
    clubTypes.clubTypeSelectedImage = @"icon_hot_tonight_touch.png"; 
    [clubTypeDataArray addObject:clubTypes]; 

    clubTypes = [[ClubTypeDC alloc] init]; 
    clubTypes.clubTypeID = 2; 
    clubTypes.clubTypeTitle = @"Lounges"; 
    clubTypes.clubTypeImage = @"icon_lounges.png"; 
    clubTypes.clubTypeSelectedImage = @"icon_lounges_touch.png"; 
    [clubTypeDataArray addObject:clubTypes]; 

    ..... 
} 
2

需要注意的是,每次添加對象的數組,它也是同一個對象進行更新。

您必須創建新的對象的每個配置它的時候,這樣的代碼:

ClubTypeDC *clubTypes = [[ClubTypeDC alloc] init]; 

應該在前面加上所有的配置片段。

相關問題