0
當我按下單元格時,會彈出一個帶有提示符的AlertView。我的問題:我想顯示從提示輸入的文本到選定的單元格。 (同時將文本保存到Core Data)。任何人都可以把我推向正確的方向嗎?使用AlertView保存核心數據並立即在單元格中
當我按下單元格時,會彈出一個帶有提示符的AlertView。我的問題:我想顯示從提示輸入的文本到選定的單元格。 (同時將文本保存到Core Data)。任何人都可以把我推向正確的方向嗎?使用AlertView保存核心數據並立即在單元格中
如果您希望它在顯示警報的同時發生,您需要在後臺線程中進行保存。
最簡單的方法是使用嵌套上下文,並從主要上下文中保存。
無論你正在創建你的管理對象方面,與更換分配/初始化部分...
NSManagedObjectContext *parentMoc = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
parentMoc.persistentStoreCoordinator = persistentStoreCoordinator;
self.managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
self.managedObjectContext.parentContext = parenetMoc;
現在,你有你在使用前相同的MOC,但它是一個主隊列MOC,父級上下文在後臺隊列中運行。
儘管如此,您將不得不使用一種方法來保存上下文。第二次保存在父項中,發生在後臺線程中,所以您不必等待。現在
- (void)saveData {
NSError *error = nil;
NSManagedObjectContext *moc = self.managedObjectContext;
if ([moc save:&error]) {
moc = moc.parentContext;
[moc performBlock:^{
NSError *error = nil;
if (![moc save:&error]) {
// Handle the actual save error
}
}];
} else {
// Handle the error of saving up into the parent context...
}
}
,而不是調用[managedObjectContext節省:&錯誤]直接與SAVEDATA的消息替換它,並且該方法將幾乎立即返回,與實際保存在後臺線程會發生。
應用程序中的其他任何代碼(除保存調用外)都不得不根本改變。
就你的情況而言,就在您提出警報之前,請致電保存,保存將在警報顯示時發生。
感謝您的廣泛回答,但您確定這是從alertview中的提示中保存文本的方式嗎?導致你在談論:「在顯示警報時保存會發生。」實際上當我在alertview中點擊'保存'時需要保存。 – Fuzej 2012-08-07 16:48:14
從你的問題中,我想到了當你顯示警報時,你想在後臺保存核心數據上下文。如果你正在尋找不同的東西,那麼也許嘗試提高你的問題,因爲現在我不知道你在做什麼。 – 2012-08-07 17:38:05
有一個單元格,我推動那個單元格,一個alertview彈出,我在這個alertview中輸入文本,這個輸入的文本我想要顯示在選中的單元格中,同時保存在覈心數據中。希望現在清楚。 – Fuzej 2012-08-07 18:54:21