簡體   English   中英

如何刪除核心數據中的條目

[英]How to delete entries in core data

我是核心數據的新手。

我知道如何存儲和物品。

- (void)dbSave:(NSString *)uri withContent:(NSDictionary *)content withExpiry:(double)date {
Cache *cache = [self dbLoad:uri];
if (cache == nil) {
    cache = [NSEntityDescription insertNewObjectForEntityForName:@"Cache" inManagedObjectContext:[self managedObjectContext]];
}

double time = (double) [[NSDate date] timeIntervalSince1970] + date;

[cache setLocal:uri];
[cache setTime:@(time)];

NSMutableData *data = [[NSMutableData alloc] init];

NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:content forKey:@"data"];
[archiver finishEncoding];

[cache setData:data];

NSError *error;
if (![[self managedObjectContext] save:&error]) {

}

}

但是我一直堅持創建清除此核心數據庫的方法。有人知道嗎?

NSManagedObjectContext *managedObjectContext=[appDelegate managedObjectContext];
NSFetchRequest *fetchRequest=[NSFetchRequest fetchRequestWithEntityName:@"entity"];
NSArray* currentRecord = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];

if (currentRecord.count)
{
    for (NSManagedObject *obj in currentRecord)
    {
        [managedObjectContext deleteObject:obj];
    }
    NSError * error = nil;

    if (![managedObjectContext save:&error])
        NSLog(@"Can't save ! %@ %@",error,[error localizedDescription]);
    else
        NSLog(@"Data deleted");
}

用這個

NSManagedObjectContext * managedContext = [[APP_DELEGATE dbManagerObj] newPrivateContext];

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Cache"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"isUserData = %@",[NSNumber numberWithBool:true]];
[fetchRequest setPredicate:predicate];
if (IS_IOS9_ANDABOVE) {
    NSBatchDeleteRequest *batchDeleteRequest = [[NSBatchDeleteRequest alloc]initWithFetchRequest:fetchRequest];
    [[[APP_DELEGATE dbManagerObj]persistentStoreCoordinator]executeRequest:batchDeleteRequest withContext:managedContext error:nil];
}
else
{
   NSArray *userRelatedDay = [managedContext executeFetchRequest:fetchRequest error:nil];
    for (NSManagedObject *object in userRelatedDay) {
        [managedContext deleteObject:object];
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM