1

我正在尝试使用 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

4

2 回答 2

0

尝试在启用僵尸的情况下运行。如果您的数组意外地被释放并且字典被分配在同一地址,您会得到这样的症状。

于 2013-02-21T04:10:58.207 回答
0

好的,事实证明我只需要在我的应用程序上重置一些东西,因为在恢复我的手机(它冻结并且不会重新启动)之后,一切都再次正常工作并且它们被记录为 NSArrays

于 2013-02-21T05:16:15.790 回答