我正在尝试使用NSArray来存储数据,但是当我记录它的类时(因为它给了我错误),它返回__NSDictionaryM
。我添加任何信息的唯一时间是我这样做
NSArray *a = [[NSArray alloc]initWithObjects:aa, nil];
对象aa
是一个字符串。什么会把数组变成字典?
好的,我使用委托将这个数组传递给另一个类:
for (CXMLElement *resultElement in [[p objectAtIndex:0] elementsForName:@"TrackDetail"]) {
NSString *aa = resultElement.stringValue;
NSArray *a = [[NSArray alloc]initWithObjects:aa, nil];
dispatch_async(dispatch_get_main_queue(), ^(void) {
[self.delegate XMLAvailable:a done:(a.count > 0)];
});
然后我在其他课程
中这样做- (void)XMLAvailable:(NSArray *)array done:(BOOL)done{
NSMutableArray *indexPaths = [NSMutableArray arrayWithCapacity:[array count]];
for(int i = [self.imageInfos count]; i < [self.imageInfos count] + [array count]; ++i) {
NSIndexPath * indexPath = [NSIndexPath indexPathForRow:i inSection:0];
[indexPaths addObject:indexPath];
}
NSLog(@"%@", array.class);
self.imageInfos = array;
NSLog(@"%@", self.imageInfos.class);
[self.tv insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationRight];
}
但出于某种原因,在上述方法中,array.class
会记录__NSDictionaryM
答案 0 :(得分:0)
尝试在启用僵尸的情况下运行。如果你的数组被意外释放并且在同一地址分配了一个字典,你会得到这样的症状。
答案 1 :(得分:0)
好的,事实证明我只是需要重置我的应用程序上的内容,因为在恢复我的手机后(它冻结了并且不会重新启动)一切正在再次运行并且它们被记录为NSArrays