NSNumber 配列を保存しようとしていますが、その方法がわかりません。
単一の NSNumber で動作するコードを取得しました。
- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError {
return [NSKeyedArchiver archivedDataWithRootObject:Number];
}
- (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError {
[self setNumber:[NSKeyedUnarchiver unarchiveObjectWithData:data]];
return YES;
}
/*
- (void)encodeWithCoder:(NSCoder *)coder {
[coder encodeObject:Number forKey:@"number"];
} */
/*
- (instancetype)initWithCoder:(NSCoder *)coder {
if (self) {
self.Number = [coder decodeObjectForKey:@"number"];
}
return self;
} */
NSNumber 配列では機能しなかったため、代わりに NSMutableArray を使用しようとしましたが、どちらも機能しません。
- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError {
return [NSKeyedArchiver archivedDataWithRootObject:Array];
}
- (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError {
[self setArray:[NSKeyedUnarchiver unarchiveObjectWithData:data]];
return YES;
}
/*
- (void)encodeWithCoder:(NSCoder *)coder {
[coder encodeObject:Array[0] forKey:@"one"];
[coder encodeObject:Array[1] forKey:@"two"];
[coder encodeObject:Array[2] forKey:@"three"];
} */
/*
- (instancetype)initWithCoder:(NSCoder *)coder {
if (self) {
self.Array[0] = [coder decodeObjectForKey:@"one"];
self.Array[1] = [coder decodeObjectForKey:@"two"];
self.Array[2] = [coder decodeObjectForKey:@"three"];
}
return self;
} */
それで、私は何を間違っていますか?
編集:encodeWithCoderとinitWithCoderは必要ないようです