数据存取用的是单例
#import"LoginDSManager.h"
#define HOME_TABLE @"LoginDesc"
staticLoginDSManager*manager =nil;
@implementationLoginDSManager
//单例
+ (LoginDSManager*)shareDataManager {
staticdispatch_once_tonceToken;
dispatch_once(&onceToken, ^{
manager= [[LoginDSManageralloc]init];
});
returnmanager;
}
//添加
- (void)addDataWithModel:(LoginInfo*)model {
NSUserDefaults*userDefault = [NSUserDefaultsstandardUserDefaults];
LoginDesc*tempModel = [NSEntityDescriptioninsertNewObjectForEntityForName:HOME_TABLEinManagedObjectContext:self.context];
//写入表
tempModel.uid= model.uid;
tempModel.sid= model.sid;
tempModel.kid= model.kid;
tempModel.cid= model.cid;
tempModel.hw_url= model.hwurl;
tempModel.name= model.name;
tempModel.mobile= model.mobile;
tempModel.portrait= [NSDatadataWithContentsOfURL:[NSURLURLWithString:[NSStringstringWithFormat:@"%@%@",model.hwurl,model.portrait]]];
tempModel.user_type= model.usertype;
tempModel.password= [userDefaultobjectForKey:@"user_password"];
[self.appDelegatesaveContext];
}
//查询
- (NSArray*)getDataFromCoreDataWithPredicateUid:(NSNumber*)uid predicateString:(NSString*)predicate {
//通过表名建立查询
NSFetchRequest*fetchRequset = [NSFetchRequestfetchRequestWithEntityName:HOME_TABLE];
//fetchRequset.fetchLimit = 2;
//通过字符串排序
if(predicate && (uid ==nil)) {
NSSortDescriptor*sort = [NSSortDescriptorsortDescriptorWithKey:@"mobile"ascending:NO];//YES升序,NO降序
fetchRequset.sortDescriptors=@[sort];
fetchRequset.predicate= [NSPredicatepredicateWithFormat:@"mobile = %@",predicate];
}
if(uid && (predicate ==nil)) {
fetchRequset.predicate= [NSPredicatepredicateWithFormat:@"uid = %@",uid];
}
return[self.context executeFetchRequest:fetchRequseterror:nil];
}
//删除
- (void)deleteModel:(LoginInfo*)model {
NSArray*array = [selfgetDataFromCoreDataWithPredicateUid:model.uidpredicateString:nil];
if(array.count) {
for(LoginDesc*modelinarray) {
[self.contextdeleteObject:model];
}
[self.appDelegatesaveContext];
}
}
//全部删除
- (void)deleAllData {
NSArray*array = [selfgetDataFromCoreDataWithPredicateUid:nilpredicateString:nil];
if(array.count) {
for(NSManagedObject*objinarray) {
[self.contextdeleteObject:obj];
}
[self.appDelegatesaveContext];
}
}
//更改其中某一个model的属性
- (void)changeModel:(LoginInfo*)model {
NSArray*array = [selfgetDataFromCoreDataWithPredicateUid:model.uidpredicateString:nil];
if(array.count) {
for(LoginDesc*tempModelinarray) {
[self.contextdeleteObject:tempModel];
}
[self.appDelegatesaveContext];
[selfaddDataWithModel:model];
}
}
- (BOOL)isContainModel:(LoginInfo*)model {
NSArray*array = [selfgetDataFromCoreDataWithPredicateUid:model.uidpredicateString:nil];
if(array.count) {
returnYES;
}else{
returnNO;
}
}
- (NSManagedObjectContext*)context {
NSManagedObjectContext*context =nil;
iddelegate = [[UIApplicationsharedApplication]delegate];
if([delegateperformSelector:@selector(managedObjectContext)]) {
context = [delegatemanagedObjectContext];
}
returncontext;
}
- (AppDelegate*)appDelegate {
if(!_appDelegate) {
_appDelegate= [AppDelegatedelegate];
}
return_appDelegate;
}
网友评论