これに対する答えは単純に思えるので探しましたが、十分なものが見つからなかったようです。私が持っているプログラムを偽のデータでテストしようとしています。学生の属性を持ち、それらすべてを保持する配列を持つ StudentData クラスを作成しました。
別のクラスがそれらを必要とする場合、getStudent メソッド (これまでのところ、このクラスの唯一の公開部分です) を呼び出し、ID 番号を送信してその学生の名前を取得します。
私の問題は、学生配列を解析して、学生 ID 番号を渡された番号と一致させる方法がわからないことです。同じ問題を抱えているため、学生オブジェクトから名前を引き出す方法もわかりません。
これまでの私のコードは次のとおりです。
// StudentData.m
#import "StudentData.h"
@interface StudentData() {
NSString *ID;
NSString *firstName;
}
@property (nonatomic, strong) NSMutableArray *studentArray;
@end
@implementation StudentData
@synthesize studentArray = _studentArray;
- (NSMutableArray *)studentArray {
if(!_studentArray) _studentArray = [[NSMutableArray alloc] init];
return _studentArray;
}
- (void)awakeFromNib {
NSArray *idA = [NSArray arrayWithObjects:@"111", @"685", nil];
NSArray *fnA = [NSArray arrayWithObjects:@"Mark", @"Sam", nil];
for(int i = 0; i < idA.count; i++) {
StudentData *tempCurrentStudent = [[StudentData alloc] init];
ID = [idA objectAtIndex:i];
firstName = [fnA objectAtIndex:i];
[self.studentArray addObject:tempCurrentStudent];
}
}
- (NSString *)getStudentsFirstName:(NSString *)studentID {
NSString *firstName;
for(int i = 0; i < self.studentArray.count; i++) {
if([studentID isEqualToString:[[self.studentArray objectAtIndex:i] self.firstName]]) { // ERROR
fN = [[self.studentArray objectAtIndex:i] self.firstName]; // ERROR
}
}
return firstName;
}
@end
私が取得し続けるエラーは次のとおりです。Expect ']'で、エラーは「self.firstName」行を指しています。
「[self.studentArray objectAtIndex:i].firstName;」を使用する場合 次のエラーが表示されます:プロパティ 'firstName' がタイプ 'id' のオブジェクトに見つかりません"firstName" をプロパティ (ローカルまたはパブリックの両方) にすると、このエラーが発生します。配列は技術的に「id」タイプで満たされているため、これは理にかなっています。また、Javaとは異なり、ジェネリックなどを使用できないことも知っています。
明確化が必要な場合はお知らせください。ところで、これは ipod/ipad アプリ用です。
ありがとう!