Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NsmutableArray仅显示在所有索引路径上添加的最后一个对象_Ios_Nsmutablearray - Fatal编程技术网

Ios NsmutableArray仅显示在所有索引路径上添加的最后一个对象

Ios NsmutableArray仅显示在所有索引路径上添加的最后一个对象,ios,nsmutablearray,Ios,Nsmutablearray,我被困在一个很小的地方。我想将虚拟数据从数组显示到tableView。但我总是在所有索引路径中只得到最后一个对象。我不知道为什么它会被最后一个对象覆盖 -(NSMutableArray *)clubTypes { NSMutableArray *clubTypeDataArray=[[NSMutableArray alloc]init]; ClubTypeDC *clubTypes = [[ClubTypeDC alloc] init]; // slideMenu_data

我被困在一个很小的地方。我想将虚拟数据从数组显示到tableView。但我总是在所有索引路径中只得到最后一个对象。我不知道为什么它会被最后一个对象覆盖

-(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;

}

请帮助我哪里有问题。

因为您不是在创建新对象,您只是不断地反复添加和修改同一对象

改为这样做:

-(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];

    ...
}

每次为新对象实例化
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];

    .....
 }

请注意,每次将对象添加到数组时,它都是同一个对象

每次配置时都必须创建新对象,因此代码:

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

应该在所有配置片段的前面加上前缀。

您需要
clubTypes=[[ClubTypeDC alloc]init]