Я оглянулся, чтобы ответить на это, потому что кажется простым, но я не мог найти что-то, что хватило. Я пытаюсь проверить программу, которую я имею с поддельными данными. Я создал класс StudentData, который обладает атрибутами для ученика, а также имеет массив, чтобы удерживать их все.Не удается получить данные из пользовательского класса
Когда другой класс нуждается в них, он вызывает метод getStudent (который является единственной открытой частью этого класса до сих пор) и отправляет идентификационный номер, чтобы вернуть имя этого студента.
Моя проблема заключается в том, что я не могу понять, как анализировать массив учащихся, чтобы соответствовать идентификационным номерам ученика с тем, который был передан. Сохраняя ту же проблему, я не могу понять, как вытащить имя из студенческий объект.
Вот мой код до сих пор:
// 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
Ошибка я получаю это: Ожидать «]» и ошибка указывает на «self.firstName» линий.
Если я использую "[self.studentArray objectAtIndex: i] .firstName;" Я получаю сообщение об ошибке: Свойство 'firstName' не найдено на объекте типа 'id' Я даже получаю эту ошибку, если я создаю свойство firstName (как локальное, так и общедоступное). Это имеет смысл, потому что массив технически заполнен типами «id». Я также знаю, что в отличие от java я не могу использовать дженерики или что-то в этом роде.
Любая помощь была бы высоко оценена, и если она нуждается в разъяснении, пожалуйста, дайте мне знать! Кстати, это приложение для ipod/ipad, если это вообще помогает.
Спасибо!