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

nsmutablearray を nslog すると、次の出力が得られます。

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

私の質問は、たとえば、ジョンという学生名の情報にアクセスするにはどうすればよいですか?

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...
}

すべてのローカル変数の値をオブジェクトの print としてまとめて出力したい場合は、Students クラスに description メソッドを記述する必要があります。

これを学生のクラスにコピーして貼り付けます...

-(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 に答える