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");
}
}
}
+(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--;
}
}
}
其它問題 更新中。。。。