こんにちは私はサーバからの応答JSON
を受け取ったときにデータベースを更新する同期機能を作っています。私は別のデータ(新規レコードまたは更新既存のレコード)がある場合、インポートはここでしか iOS Magical record import from array
- (void)updateWithApiRepresentation:(NSDictionary *)json
{
self.title = json[@"Name"];
self.serverIdValue = [json[@"Id"] integerValue];
self.year = json[@"Year of Release"];
self.month = json[@"Month of Release"];
self.day = json[@"Day of Release"];
self.details = json[@"Description"];
self.coverImage = json[@"CoverImage"];
self.thumbnail = json[@"Thumbnail"];
self.price = json[@"Buy"];
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"dd/MMMM/yyy"];
NSDate *date = [formatter dateFromString:[NSString stringWithFormat:@"%@/%@/%@",self.day,self.month,self.year]];
self.issueDate = date;
}
され(coredata
とmagicalRecord
を使用)(パフォーマンスを向上させるために)場所を取るしたい私インポート方法
+ (void)API_getStampsOnCompletion:(void(^)(BOOL success, NSError *error))completionBlock
{
[[ApiClient sharedInstance] getStampsOnSuccess:^(id responseJSON) {
NSManagedObjectContext *localContext = [NSManagedObjectContext MR_context];
NSMutableArray *stamps = [[NSMutableArray alloc]init];
[responseJSON[@"root"] enumerateObjectsUsingBlock:^(id attributes, NSUInteger idx, BOOL *stop) {
Stamp *stamp = [[Stamp alloc]init];
[stamp setOrderingValue:idx];
[stamp updateWithApiRepresentation:attributes];
[stamps addObject:stamp];
}];
[Stamp MR_importFromArray:stamps inContext:localContext];
} onFailure:^(NSError *error) {
if (completionBlock) {
completionBlock(NO, error);
}
}];
}
私は取得していますエラー
CoreData: error: Failed to call designated initializer on NSManagedObject class 'Stamp'
2016-08-02 23:52:20.216 SingPost[2078:80114] -[Stamp setOrdering:]: unrecognized selector sent to instance 0x78f35a30
私のJsonパーサが正常に動作していることを確認しました。問題は私のインポートメソッドにあります。私はその機能に何が間違っているのか分かりません。どんな助けでも大変感謝しています。ありがとう!
こんにちは、私は魔法のレコードのライブラリで働いています。上記の値はStamp * stamp = [Stamp MR_createEntityInContext:localContext];?と等しくなります。新しいレコードを追加するときに重複を避ける方法はありますか? –
私は魔法の記録を使用していないので、私は確信が持てません。 –
とにかく(サーバーからjsonの応答を受け取った後に)重複レコードを追加しないようにする方法を知っていますか? –