创建一个NSObject类的数组

时间:2012-08-12 23:44:49

标签: objective-c ios cocoa-touch nsarray

我有一个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类然后将它分配给一个数组..但我只是不知道怎么做,任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您超出了数组filteredArray

的大小
while (myCount <= [filteredArray count]) {

应该阅读

while (myCount <[filteredArray count]) {

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

老实说,我不确定,你想要实现什么,但你应该考虑使用fast enumeration而不是while语句

for (id obj in filteredArray) {

甚至是鸽友block-based enumeration

NSMutableArray *testArray = [[NSMutableArray alloc] init];
[filteredArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    //...
    [testArray addObject:obj];
}];

答案 1 :(得分:-1)

尝试使用NSMutableArray addObject。 NSMutableArray没有'C'style []运算符。