ios - 尝试在 iOS 的 Core Data 中用另一个实体对象替换现有的实体对象
<p><p>我在我的应用程序中使用 Core Data 进行存储,在应用程序中,有时我的“实体”会被修改(例如地址、城市、职位名称)。</p>
<p>我不想更新实体的特定属性,而是想通过创建一个方法来简化该过程,在该方法中,我将存储中的现有实体替换为同一实体的更新版本(没什么花哨的)。在我的方法中,我认为我必须获取所需的实体,但我该如何进行替换呢?这就是我感到困惑的地方。 </p>
<p>这是我的相关代码:</p>
<pre><code> -(void)updateUser:(User *)user {
// Create fetch request
NSFetchRequest *fetchRequest = [ init];
NSEntityDescription *entity = ;
;
// Create predicate
NSPredicate *pred = ;
;
// Create fetched results controller
NSFetchedResultsController *theFetchedResultsController = [ initWithFetchRequest:fetchRequest managedObjectContext:_managedObjectContext sectionNameKeyPath:nil cacheName:nil];
self.fetchedResultsController = theFetchedResultsController;
_fetchedResultsController.delegate = (id)self;
//what do I do next?
NSError *error;
if (!) {
NSLog(@"Whoops, couldn't save: %@", );
}
}
</code></pre>
<p>正如我所说,我只是想用新实体替换现有实体。我该怎么做?</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>我不认为替换对象比更改属性更简单。</p>
<p>但是要做你想做的,你需要这样的代码:</p>
<pre><code>// I don't know the class for YourEntity,
NSError *error = nil;
NSArray *results = ;
if (error) {
// handle fetch error
} else {
NSEntityDescription *entityDesc = ;
YourEntity *newEntity = [ initWithEntityDescription:entityDescription insertIntoManagedObjectContext:_managedObjectContext];
// change settings on 'newEntity'
for (YourEntity *recordToDelete in results) {
;
}
;
if (error) {
// handle save error
}
}
</code></pre></p>
<p style="font-size: 20px;">关于ios - 尝试在 iOS 的 Core Data 中用另一个实体对象替换现有的实体对象,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/18925796/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/18925796/
</a>
</p>
页:
[1]