スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
このエントリーをはてなブックマークに追加

[iOS]CoreDataにautoincrementされるidを付加する

Attributeにあらかじめ「id(Integer)」を用意しておいてください。
データを追加する度にidが自動で設定されます。
lastInsertIDメソッドで最後に追加したIDの値が取得できます。
[iOS]CoreDataの取得したデータをソートする_1

//ChildInfo.h
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>

@class MotherInfo;

NS_ASSUME_NONNULL_BEGIN

@interface ChildInfo : NSManagedObject

// Insert code here to declare functionality of your managed object subclass
- (NSInteger)lastInsertID;

@end

NS_ASSUME_NONNULL_END

#import "ChildInfo+CoreDataProperties.h"


//ChildInfo.m
#import "ChildInfo.h"

@implementation ChildInfo

- (void)awakeFromInsert {
[super awakeFromInsert];

self.id = [NSNumber numberWithInteger:[self __getMaxID]+1];
}

- (NSInteger)__getMaxID {
if(!self.managedObjectContext)return NSNotFound;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:self.entity.name];

fetchRequest.fetchLimit = 1;
fetchRequest.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"id" ascending:NO]];

NSError *error = nil;

ChildInfo *firstData = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error].firstObject;

return [firstData.id integerValue];
}

- (NSInteger)lastInsertID {
return [self __getMaxID];
}

@end
このエントリーをはてなブックマークに追加

コメントの投稿

非公開コメント

Translation


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
プロフィール

チーズくん

Author:チーズくん
個人的メモをただ羅列しています。
twitter:@cheese1038

バロメーター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。