gpt4 book ai didi

ios - NSManagedObject 保存或插入检查

转载 作者:行者123 更新时间:2023-11-29 03:05:20 25 4
gpt4 key购买 nike

我有一个 UIViewController ,其中 UINavigationBar 中有保存按钮.

UIViewController用于保存新用户以及编辑用户

打开,保存按钮我以前总是打电话- (void)insertObject:(NSManagedObject *)object;当我编辑用户时失败,因为该托管对象已经可用。

因此,我正在使用以下检查。这是插入或保存编辑用户的正确方法吗?

NSManagedObject *managedObject = someObject;
NSManagedObjectContext *managedContext = someContextObject;
NSError *error;
if(m.objectID.isTemporaryID){
//This means its a new object so, first insert
[managedContext insertObject:managedObject];
}

[managedContext save:&error];

最佳答案

我的模式是在 View Controller 上为我的托管对象创建一个属性。假设您的用户类是 User:

@property (nonatomic, strong) User *user;

如果我进行编辑,该属性将由现有用户设置。如果我正在创建,它将是 nil。在我的保存逻辑中,我做了一个检查:

- (void)didSelectSaveButton:(id)sender {
if (!self.user) {
self.user = [NSEntityDescription insertNewObjectForEntityForName:@"User"
inManagedObjectContext:context];
}

// Rest of the logic to map the UI elements to the properties of my user model
// objects, referencing self.user

NSError *error = nil;
BOOL success = [managedObjectContext save:&error];

// error handling
}

这样,无论是“插入”还是“更新”,我为用户填充信息的逻辑都是相同的。

关于ios - NSManagedObject 保存或插入检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22837283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com