我有一个NSObject
类,我也在其中发送一个NSDictionary
对象,然后类对象将NSDictionary
中的所有条目设置为它们的本机类型,这些类型是NSObject
上课。
我希望将此NSObject
类传递给自己的NSMutableArray
但是当发生这种情况时我的应用程序会崩溃。
NSObject
类,然后尝试将其设置为NSMutableArray
的代码。
NSArray *filteredArray = parsedDataArrayOfDictionaries; //dictionary entries are currently in nsstring format
SearchResultList *searchResultList = [[SearchResultList alloc]init];
NSMutableArray *testArray = [[NSMutableArray alloc] init];
int myCount = 0;
while (myCount <= [filteredArray count]) {
//call class and pass current NSDictionary in array[myCount]
[searchResultList assignSearchData:filteredArray[myCount]];
searchResultList = (SearchResultList*)[testingDic objectForKey:@"myObject"];
testArray[myCount] = searchResultList; //create array of nsobjectclassed, this is also where the app fails
NSLog(@"%@", testArray[myCount]);
}
希望这是有道理的,我在while语句的中间失去了...我知道我需要取回NSObject
类然后将它分配给一个数组..但我只是不知道怎么做,任何帮助将不胜感激。
答案 0 :(得分:1)
您超出了数组filteredArray
while (myCount <= [filteredArray count]) {
应该阅读
while (myCount <[filteredArray count]) {
因为数组的数量比最后一个对象的索引高一个,因为索引从0开始。
老实说,我不确定,你想要实现什么,但你应该考虑使用fast enumeration而不是while语句for (id obj in filteredArray) {
NSMutableArray *testArray = [[NSMutableArray alloc] init];
[filteredArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
//...
[testArray addObject:obj];
}];
答案 1 :(得分:-1)
尝试使用NSMutableArray
addObject。 NSMutableArray
没有'C'style []运算符。