我正在尝试将多个值存储到单个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
上。
抱歉,我还没有任何示例代码。请阅读我的问题,并提供一些示例代码。感谢
答案 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
}