-4
私は以下のコードに従おうとしました。 CoreDataが格納されていないためです。EXC_BAD_ACCESS問題
CoreDataのみがBinaryDataに格納されます。
NSArrayからNSDataに変換します。
この変換は成功しました。
しかし、変換されたNSData reverseはNSArrayに変換されません。
にNSArrayのNSDataに(成功事例の)に変換
NSDataの(失敗)にNSArrayに変換
私はコメントEXC_BAD_ACCESS行を書きました。
plz help me !!!
EX)
[newEntity setValue:[myArray convertToData] forKey:@"myData"]; (not problem)
myItem.arr = [NSArray arrayWithData:[newEntity valueForKey:@"myData"]]; (seriously Problem)
#import <Foundation/Foundation.h>
@interface NSArray(dataConversion)
- (NSData*) convertToData;
+ (NSArray*) arrayWithData:(NSData*) data;
@end
#import "NSArray+dataConversion.h"
@implementation NSArray(dataConversion)
- (NSData*) convertToData {
unsigned n= [self count];
NSMutableData* data = [[NSMutableData dataWithLength: sizeof(unsigned)+
sizeof(id) *n] retain];
unsigned* p = [data mutableBytes];
*p++= n;
[self getObjects:(void*)p];
return data;
}
+ (NSArray*) arrayWithData:(NSData*) data
{
unsigned* p = (unsigned*)[data bytes];
//this code occured EXC_BAD_ACCESS message.
unsigned n = *p++;
return [NSArray arrayWithObjects:(id*)p count:n];
}
@end
@ bitmapdata.comはい、それはbbumが書いたものです... –
[[NSArray arrayWithObjects:(id *)p count:n] retain]が間違っています。 私は間違ってコードを書く。今編集する。 このコードに問題がありますか?コードはこのサイトをもたらしました:http://lists.apple.com/archives/cocoa-dev/2002/Jan/msg00315.html このコードを修正していませんか? –