CoreData中的數據處理的一些問題 增刪改查

array 0 = (

    "<MsgForPush: 0x1d5c4260> (entity: MsgForPush; id: 0x1d5b0720 <x-coredata://A174ED32-E568-4FFE-AC00-CFD985E7D986/MsgForPush/p1> ; data: <fault>)",

    "<MsgForPush: 0x1d59a450> (entity: MsgForPush; id: 0x1d598eb0 <x-coredata://A174ED32-E568-4FFE-AC00-CFD985E7D986/MsgForPush/p2> ; data: <fault>)",

    "<MsgForPush: 0x1d59a500> (entity: MsgForPush; id: 0x1d5a04a0 <x-coredata://A174ED32-E568-4FFE-AC00-CFD985E7D986/MsgForPush/p3> ; data: <fault>)"

)

  直接取值 data:<fault>  


應該使用valueForkey來獲取數據 

從數據庫中刪除數據

+ (void)deleteMsgInfo

{

    NSManagedObjectContext *objectContext = [[AppDelegateAppDelegate] managedObjectContext];

     NSEntityDescription *entity = [NSEntityDescriptionentityForName:@"MsgForPush"inManagedObjectContext:objectContext];

    //查詢數據庫,搜索出該類

   NSFetchRequest *fetchRequest = [[NSFetchRequestalloc] init];

    [fetchRequestsetEntity:entity];

   NSError *error;

   NSArray *objects = [objectContext executeFetchRequest:fetchRequest error:&error];

   for (MsgForPush *searchin objects) {//清空該類數據

       NSString* alert_title = [search valueForKey:@"alert"];

       NSLog(@"delete title = %@",alert_title);

        [objectContextdeleteObject:search];

    }

   if ([objectContext hasChanges])

    {

       if (![objectContext save:&error])

        {

            NSLog(@"There was an error");

        }

    }

}

@月城眠 生日快樂 // 20130618115800

+(NSArray*)searchInTable:(NSString*)table ofAttribute:(NSString*)attr valued:(id)val inContext:(NSManagedObjectContext*)context//查找表table中屬性attr的值爲val的數據

{

    NSFetchRequest* fetchRequest = [NSFetchRequest fetchRequestWithEntityName:table];

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(%K == %@)",attr,val];

    [fetchRequest setPredicate:predicate];

    NSError* error;

    NSArray* result = [context executeFetchRequest:fetchRequest error:&error];

    if (error) {

        NSString* info = [NSString stringWithFormat:@"查詢表%@中屬性%@值爲%@時出現錯誤==%@",table,attr,val, error.description];

        NSLog(@"%@",info);

    }

    return result;

}

//更新:直接修改對象,保存managedObjectContext就好

+ (BOOL)updateStatus:(NSString*)alert{

    NSManagedObjectContext* context = [AppDelegate AppDelegate].managedObjectContext;

    NSArray* read = [self searchInTable:@"MsgForPush" ofAttribute:dDBK_alert valued:alert inContext:context];

    NSLog(@"alert == %@",alert);

    NSLog(@"----read = %@",read);

    [read setValue:@"1" forKey:dDBK_status];

    NSError *error = nil;

    if (![context save:&error]) {

        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);

        abort();

        return NO;

    }

    

    NSLog(@"update success");

    return YES;

}

////////////////////// 查重的問題~~~~~  

for (int i=0; i<array.count; i++)

    {

        //查重

        for (int j=i+1; j<array.count; j++)

        {

            NSDictionary *inquiryDic = [array objectAtIndex:i];

            NSDictionary* dic2 = [array objectAtIndex:j];

            if ([[inquiryDic objectForKey:@"alert"] isEqualToString:[dic2 valueForKey:@"alert"]])

            {

                [array removeObjectAtIndex:j];

                [objectContext delete:[array objectAtIndex:j]];

                j--;

            }

        }

    }


其它問題 更新中。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章