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

携帯電話を復元した後 (フリーズして再起動しない)、すべてが再び機能し、NSArrays としてログに記録されているため、アプリをリセットする必要がありました。

于 2013-02-21T05:16:15.790 に答える
0

ゾンビを有効にして実行してみてください。配列が誤って割り当て解除され、辞書が同じアドレスに割り当てられた場合、このような症状が発生します。

于 2013-02-21T04:10:58.207 に答える