我有一個相對較小的核心數據應用程序。它包含使用存儲在NSUserDefaults中的一些用戶首選項生成的對象。當用戶更改他們的偏好時,是否有可能使用更新的偏好重新計算當前的所有核心數據元素?可以刷新整個核心數據對象嗎?
0
A
回答
1
是的,只需檢查用戶首選項是否已在您的代理上發生更改,然後更新您的NSManagedObject元素。
您可以使用這樣的查詢您保存的對象
// Query your already saved objects and change their values
- (void)changeObjects {
NSArray *array = [CoreDataUtils fetchEntity:@"MyObject" withPredicate:nil inContext:moc];
for (NSManagedObject *obj in array) {
[obj setValue:@"newValue" forKey:@"columName"];
}
[moc save:nil];
}
+ (NSArray *)fetchEntity:(NSString *)entityName withPredicate:(NSPredicate *)predicate inContext:(NSManagedObjectContext *)moc
{
NSFetchRequest* request = [[NSFetchRequest alloc] init];
NSEntityDescription* entity = [NSEntityDescription entityForName:entityName inManagedObjectContext:moc];
[request setEntity:entity];
[request setPredicate:predicate];
NSError* error;
return [moc executeFetchRequest:request error:&error];
}
+0
謝謝,這看起來正是我所需要的。我試圖實施它,並接受答案,如果它的工作。 :) –
+0
如果你需要更多的幫助不要猶豫,問:D – alexandresoli
+0
您的代碼是否更新基於「columnName」的其他值? –
相關問題
- 1. 可可 - 核心數據對象圖
- 2. Linux核心數據可以使用嗎?
- 3. 更新核心數據對象swift 3
- 4. iPhone核心數據不刷新表
- 5. 核心數據子tableview不刷新
- 6. 刷新核心數據關係
- 7. 核心數據和每個對象
- 8. 核心數據更新是否存在或創建新的託管對象。我可以讓這個更快嗎?
- 9. 核心數據不返回完整對象,數據:<fault>
- 10. 核心數據:添加關係對象,以現有的對象
- 11. 如何刷新NSManagedObject與更新的數據 - 核心數據
- 12. UItableview不刷新來自核心數據的更新數據
- 13. 核心數據遷移 - 如何只填寫一個新對象?
- 14. 核心數據刪除對象函數
- 15. Swift 2核心數據:刪除對象ok!但在TableView中沒有刷新行
- 16. 可以使用核心數據在iOS /核心圖形中撤銷/重做嗎?
- 17. 核心數據:對
- 18. 使用核心數據更新對象插入新記錄
- 19. 核心數據獲取特定對象
- 20. 美麗核心數據對象ID
- 21. 在覈心數據中添加對象
- 22. 帶核心數據對象的NSPredicate
- 23. 核心數據託管對象集
- 24. 核心數據對象不會存儲
- 25. 使用核心數據存儲對象
- 26. 核心數據獲取關係對象
- 27. 核心數據丟失的對象
- 28. 核心數據不取對象
- 29. 核心數據對象按鈕操作
- 30. 核心數據不會覆蓋對象
我會這樣想。你爲什麼認爲這是不可能的? – 2012-10-10 12:48:30
當用戶更改他們的偏好時,我將如何更改已存儲的所有數據?有沒有一種方法可以用來遍歷所有文檔對象? (也許在另一個線程中)。或者我必須擦除所有數據並使用新的首選項重新創建所有數據? –