-2

我有一个NSObject类,我也在其中发送一个NSDictionary对象,然后类对象将所有条目设置NSDictionary为它们的本机类型,这些本机类型是类中的变量NSObject

然后我想将这个NSObject类传递给它自己的类,NSMutableArray但是当这种情况发生时我的应用程序崩溃了。

下面是调用NSObjectClass 的代码,然后尝试将其设置为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语句的中间有点迷失了......我知道我需要取回NSObjectClass然后将它分配给一个数组..但我只是不确定如何做到这一点,任何帮助将不胜感激。

4

2 回答 2

1

您超出了数组的大小filteredArray

while (myCount <= [filteredArray count]) {

应该读

while (myCount <[filteredArray count]) {

因为数组的计数比最后一个对象的索引高一,因为索引从 0 开始。

老实说,我不确定您要达到的目标,但是您应该考虑使用快速枚举而不是 while 语句

for (id obj in filteredArray) {

甚至更高级的基于块的枚举

NSMutableArray *testArray = [[NSMutableArray alloc] init];
[filteredArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    //...
    [testArray addObject:obj];
}];
于 2012-08-13T00:36:38.147 回答
-1

尝试使用NSMutableArrayaddObject。没有 'C' 风格的 [] 运算符NSMutableArray

于 2012-08-12T23:53:42.567 回答