0

谁能帮我告诉我如何访问 NSMutableArray 中的对象。

这是创建对象的方式:

视图控制器:

Students *studens =[[Students alloc] initWithDictionary:data]; //where data is NSDictionary
[self.studentData addObject:studens]; //where studentData is a NSMutableArray

在 Students 中是一个 NSObject 类。在学生课上:

-(id)initWithDictionary:(NSDictionary *)studenDictionary
    self = [super init];
    if (self)
    {
        self.studentName= [stateDictionary objectForKey:@"name"];
        self.studenLastName= [stateDictionary objectForKey:@"lastName"];
        self.StundenAddress= [stateDictionary objectForKey:@"address"];
    }
    return self;
}

如果我 nslog nsmutablearray 我会得到这个输出:

"<studens: 0x756b970>",
"<studens: 0xf46f9a0>"

例如,我的问题是如何访问学生姓名 John 的信息?

4

5 回答 5

3

在您的类中实现该description方法:Students

- (NSString *)description {
    return [NSString stringWithFormat:@"Students: name: %@, lastName: %@, address: %@", self.studentName, self.studentLastNAme, self.studentAddress];
}

Students现在,当您记录数组时,您将看到有关数组中每个对象的有用信息。

于 2013-07-02T05:50:43.710 回答
2

使用此访问:

for(Students *studens in self.studentData)
{
   NSLog(@"Name = %@",students.studentName);
   NSLog(@"LastName = %@",students.studenLastName);
   NSLog(@"Address = %@",students.StundenAddress);
   //or
   NSLog(@"%@",students);//if you have define description method in Students class...
}

如果要将所有局部变量值一起打印为对象的打印,则必须在学生类中编写描述方法,例如:

将此复制并粘贴到您的学生班级...

-(NSString *) description
{
   return [NSString stringWithFormat@"Name = %@ \n Last Name= %@  \n Address = %@",self.studentName,self.studenLastName,self.StundenAddress];
}

现在,如果你NSLog(@"%@",students);它会显示你所有的信息。

于 2013-07-02T05:55:14.967 回答
0

请查看NSPredicate。它可能会解决您的问题。NSPredicates 是可以在对象上运行的查询,并且对于从数组中搜索特定对象等功能非常有用。

于 2013-07-02T05:48:23.173 回答
0

尝试这个

Students *studenobj =[self.studentData objectAtIndex:0];
NSLog(@"%@",studenobj. studentName)
于 2013-07-02T05:48:51.033 回答
0
if I nslog the nsmutablearray I'll get this output:
"<studens: 0x756b970>",
"<studens: 0xf46f9a0>"

当您尝试打印您的学生类对象时,这就是您需要像这样访问对象的实例变量的原因。

for(int i=0; i<[self.studentDataArray count]; i++)
{
    Students *studenobject =[self.studentDataArray objectAtIndex:i];
    NSLog(@"Name of Student = %@",studenobject.studentName);
    NSLog(@"Last Name of Student = %@",studenobject.studenLastName);
    NSLog(@"Address of Student = %@",studenobject.StundenAddress);

}
于 2013-07-02T05:49:19.927 回答