Я добавил несколько class Objects
в NSMutableArray
. Кажется, это сработало, однако я хотел бы теперь получить доступ к переменным, которые находятся внутри объекта класса, который я сохранил в массиве, однако теперь я сталкиваюсь с некоторыми ошибками.
Первоначально у меня есть NSDictionary
записей, все из которых основаны на NSString
. Цель метода, который я передаю этим NSArray
из NSDictionary
/s, также состоит в том, чтобы взять каждую запись в словаре и поместить ее в переменную правильного типа. Затем эти NSObject
переменных передаются обратно туда, откуда они были вызваны.
Ниже приведен код, который я использую для достижения этой цели.
ответ.m
// initalise NSOject Class
SearchResultList *searchResultList = [[SearchResultList alloc]init];
// Create mutableArray with compacity (compacity is based of the current array of NSDictionarys (entries are strings))
NSMutableArray *searchObjectArray = [[NSMutableArray alloc] initWithCapacity:[filteredArray count]];
// count to track progress of the array
int myCount = 0;
// for loop goes through the array passing each object in the array over to the search class object
for (id obj in filteredArray) {
// Pass current array object over to the NSObject Class Method, this method assigns the entires of the NSDictionary object to the variables of the object class coorect type values
[searchResultList assignSearchData:filteredArray[myCount]];
// This is where I capture the returning NSObject Class (at least I think thats whats happening.
[searchObjectArray addObject:searchResultList];
// increments count
myCount ++;
}
//..
Это метод класса, вызываемый внутри цикла for.
SearchResultList.m
//return is of type, SearchResultList which is the object class itself... not sure if this is 100% correct.
- (SearchResultList *)assignSeriesSearchData:(NSMutableDictionary*)tempDict
{
//add all of the NSDictionary entries into their own variables of the correct type such as
// initalize DOORID - NSInteger
doorID = [[tempDict valueForKey:@"DOORID"] integerValue];
// initalize DOORDESC - NSString
doorDesc = [tempDict valueForKey:@"DOORDESC"];
// initalize DOOROPEN - BOOL
doorOpen = [[tempDict valueForKey:@"DOOROPEN"] boolValue];
// initalize DOORLETTER - char
doorLetter = [[tempDict valueForKey:@"DOORLETTER"] UTF8String];
//...
//then I return the NSObject Class to the place where it was called
return self;
}
Итак, отсюда я возвращаюсь в цикл for response.m, где я вызываю searchObjectArray addObject:searchResultList];
для захвата возвращаемого объекта класса.
На данный момент у меня есть два вопроса.
Во-первых, правильно ли я определяю класс NSObject
Во-вторых. После того как я добавил все объекты класса в массив, как я могу затем получить доступ к переменным определенного объекта в массиве?
Причина, по которой я задаю второй вопрос, заключается в том, что я хочу передать этот массив методу сортировки, который сортирует на основе одной или нескольких переменных объектов, находящихся в массиве.
Любая помощь будет принята с благодарностью.
NSObject *myobj= [searchObjectArray objectAtIndex:0]; NSLog(@"%@", myobj);
после цикла for и добавлю точку останова, когда я наведу указатель мыши на myobj, я увижу все доступные переменные и их значения. Я просто не знаю, как получить к ним доступ по отдельности... - person HurkNburkS   schedule 13.08.2012