如何在iOS中使用行中的值创建数组?

时间:2014-04-01 06:17:15

标签: ios xcode nsmutablearray

在我的应用中,我有一个数据库,其中包含名称,数字,标记等值 我可以从db中为每个数组招募名称,数字和标记的值 我想得到每个人的价值 考虑我有3个学生。

nameArray=(a,b,c);
numberArray=(1,2,3);
markArray=(25,50,75);

现在我想为每个学生分开价值,我需要

stud1=(a,1,25);
stud2=(b,2,50);
stud3=(c,3,75);

我无法理解这一点,任何帮助都将不胜感激

2 个答案:

答案 0 :(得分:2)

好的,如果您想要为学生提供所有相关数据的选择语句,请查看其中一个或两个指南。它们不是最新的,但有你需要的东西:

http://www.raywenderlich.com/913/sqlite-tutorial-for-ios-making-our-app

此示例从FailedBankInfo对象开始,该对象与您的Student匹配。请注意,它们使用以下方法使用数据库中的值创建其中一个对象:

- (id)initWithUniqueId:(int)uniqueId name:(NSString *)name city:(NSString *)city 
    state:(NSString *)state 

本教程向您展示如何获取这些值并循环结果。

这是第二个教程:

http://dblog.com.au/iphone-development-tutorials/iphone-sdk-tutorial-reading-data-from-a-sqlite-database/

在本文中,开头的示例是Animal对象。许多Animal是根据数据库中的值创建的,类似于您的StudentAnimal类看起来像这样:

@interface Animal : NSObject {
    NSString *name;
    NSString *description;
    NSString *imageURL;
}

@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSString *description;
@property (nonatomic, retain) NSString *imageURL;

-(id)initWithName:(NSString *)n description:(NSString *)d url:(NSString *)u;

@end

那些教程可以帮助你。

有关其他信息, @square 建议如下......

如果您可以依赖三个数组中值的顺序,我的意思是,如果每个数组中索引3处的值对应同一个学生,则可以执行以下操作:

for (int i = 0; i < nameArray.count; i++) {
    Student* student = [[Student alloc] initWithName:nameArray[i] number:numberArray[i] mark:markArray[i]];
    [theStudents addObject:student];
}

以上内容依赖于您有一个名为Student的班级,其中init取名字,编号和标记。还有一个名为theStudents的可变数组。

答案 1 :(得分:0)

像这样你可以尝试,我得到,你想通过stud1 =(a,1,25);这个值,对于i = 0,你将获得stud1 =(a,1,25);

NSArray  *name1 = [[NSArray alloc] initWithObjects:@"a",@"b",@"c",nil];
    NSArray  *num2 = [[NSArray alloc] initWithObjects:@"1",@"2",@"3",nil];
    NSArray  *marks3 = [[NSArray alloc] initWithObjects:@"341",@"452",@"353",nil];

    for (int i=0;i<[name1 count]; i++) {

        NSLog(@"%@",[name1 objectAtIndex:i ]);
         NSLog(@"%@",[num2 objectAtIndex:i ]);
         NSLog(@"%@",[marks3 objectAtIndex:i ]);

        // NSLog(@"%@",[obj1 objectAtIndex:i ]);
        // store or display where you want