如何将多个值存储到tableview NSMutableArray中?

时间:2015-08-12 08:47:33

标签: ios objective-c iphone uitableview

我正在尝试将多个值存储到单个tableview NSMutableArray中。我想在多个标签上执行单个tableview row多个values,如下所示。

------------------------------------------------------
 Name        age    |    height    |    weight     // Row one section
------------------------------------------------------ 
Jack          23     |      123      |      45     // Row two 
------------------------------------------------------
Nano         31     |      173      |      65      // Row three 
------------------------------------------------------

上图提到了tableview单行,其中包含多个自定义标签不同类型的值。现在我正在为单独的值维护单独的数组,但我不能按名称和年龄对所有数据进行排序。所以我想将所有数据存储到单个NSMutableArray并列在tableview with sorting上。

抱歉,我还没有任何示例代码。请阅读我的问题,并提供一些示例代码。感谢

3 个答案:

答案 0 :(得分:0)

您可以使用NSDictionary个对象。像这样:

NSDictionary *object1 = @{ @"name" : @"Jack", @"age" : @(23), @"height" : @(123), @"weight" : @(45) };
NSDictionary *object2 = @{ @"name" : @"Nano", @"age" : @(31), @"height" : @(173), @"weight" : @(65) };
NSArray *array = @[ object1, object2 ];

然后使用NSPredicate对其进行排序。

答案 1 :(得分:0)

您应该使用NSDictionary作为数组项。就像你可以做的那样:

NSMutableArray *arTableElements = [[NSMutableArray alloc] init];
NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
[dic setValue:@"23" forKey:@"Name"];
[dic setValue:@"23" forKey:@"age"];
[dic setValue:@"23" forKey:@"height"];
[dic setValue:@"23" forKey:@"weight"];

[arTableElements addObject:dic];

//add second element
dic = [[NSMutableDictionary alloc] init];
[dic setValue:@"23" forKey:@"Name"];
[dic setValue:@"23" forKey:@"age"];
[dic setValue:@"23" forKey:@"height"];
[dic setValue:@"23" forKey:@"weight"];
[arTableElements addObject:dic];

...

[table reloadData];

等等。 在cellForRow方法中使用这些词典填充标签值

之后

PS。对于标题使用节标题不是一行...

答案 2 :(得分:0)

您应该创建一个Person模型类,而不是使用多个数组,

模型类应该具有名称,年龄,身高等属性。

模型类类似于

#import <Foundation/Foundation.h>

@interface Person : NSObject

@property (nonatomic,retain) NSString *name;
@property (nonatomic,retain) NSString *age;
@property (nonatomic,retain) NSString *height;
@property (nonatomic,retain) NSString *weight;


@end

您应该使用Person个对象

的数组,而不是为属性创建数组
- (NSMutableArray *)prepareModelClass
{
    NSMutableArray *personsArray = [NSMutableArray new];
    for (NSInteger i = 0; i < namesArray.count; i++) {
        Person *personObject = [Person new];// create a person object
        personObject.name = namesArray[i]; //assign properties
        personObject.age = agesArray[i];
        personObject.weight = weightsArray[i];
        [personsArray addObject:personsArray]; //add person object to single array
    }

    return personsArray;//you should use this array as data source for table view
}