Objective c 创建NSObject类的数组
我有一个Objective c 创建NSObject类的数组,objective-c,ios,cocoa-touch,nsarray,Objective C,Ios,Cocoa Touch,Nsarray,我有一个NSObject类,在该类中我也发送了一个NSDictionary对象,然后该类对象将NSDictionary中的所有条目设置为其本机类型,即NSObject类中的变量 然后我想将这个NSObject类传递到它自己的NSMutableArray中,但是当这种情况发生时,我的应用程序会崩溃 下面是调用NSObject类,然后尝试将其设置为NSMutableArray的代码 NSArray *filteredArray = parsedDataArrayOfDictionaries; //d
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]);
}
NSArray*filteredArray=parseddataarrayofdictionary//词典条目当前为nsstring格式
SearchResultList*SearchResultList=[[SearchResultList alloc]init];
NSMutableArray*testArray=[[NSMutableArray alloc]init];
int myCount=0;
而(myCount尝试使用NSMutableArray
addObject。对于NSMutableArray
您正在超出数组的大小filteredArray
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 (myCount <= [filteredArray count]) {
甚至是爱好者
你的代码没有意义。seriesSearchResultList从何而来??为什么要创建一个SearchResultList对象并将其分配给SearchResultList,然后稍后覆盖该指针(并泄漏该对象)?在testingDic中应该是什么?opps.SeriesArchResultList是searcResultList..不知道发生了什么。你问题的第二部分的答案是:我有点迷路了..我以为我正在将NSObject类接收到searchResultList中,然后将该对象放入数组..这就是我所想的..but我想不是..我只是有点迷路..我正试图找到一个与我正在做的事情等效的例子,但我找不到。我建议你先学习如何使用Java编程。学习使用Objective-C编程是一个非常糟糕的主意。对于现代Objective-C和Xcode 4.4以上版本的LLVM4编译器来说,情况并非如此。对象文字和下标是supportedhrmmm由于未捕获的异常“NSRangeException”,这导致终止应用程序时出现此问题,原因:'-[\u NSArrayM objectAtIndex:]:索引0超出空数组“*@Abizem”的界限-感谢您让我知道这一点。这将节省大量键入工作。@HurkNburkS确保您不访问超出范围的元素。如果您只添加一项,但尝试访问objectAtIndex:2,则会出现异常。请尝试[testArray addObject:SeriesArchResultList]
。好的,感谢您的回复,我现在将阅读快速枚举。我试图实现的是获取一个NSMutableArray,其中包含NSDictionary的所有条目都是字符串,并将它们传递给一个NSObject类,该类获取字典中的每个条目,并将NSString转换为其真实类型,然后对中的每个NSDictionary对象执行此操作MutableArray,然后将创建的每个NSObject类和设置的值传递到它们自己的NSMutable数组中,该数组可用于对类中的不同条目进行排序。我希望这是有意义的。这实际上是有效的。但是,我必须将从searchResultList调用的方法返回类型更改为返回self。然后我还在testArray addobject:obj]之后删除了[count]
;
这似乎让事情进展顺利,这是一个很好的解脱。但是我仍然需要做一些测试。以确保没有出现随机错误。感谢您的帮助:)
for (id obj in filteredArray) {
NSMutableArray *testArray = [[NSMutableArray alloc] init];
[filteredArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
//...
[testArray addObject:obj];
}];