2014-02-17 3 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]; 

Если предварять все фрагменты конфигурации.

Смежные вопросы