DataSaveManager

数据存取用的是单例

#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;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、改变 UITextField 占位文字 颜色和去掉底部白框 [_userName setValue:[UICo...
    i_MT阅读 1,178评论 0 2
  • iOS CoreData介绍和使用(以及一些注意事项) 最近花了一点时间整理了一下CoreData,对于经常使用S...
    Pocket阅读 23,177评论 34 92
  • *7月8日上午 N:Block :跟一个函数块差不多,会对里面所有的内容的引用计数+1,想要解决就用__block...
    炙冰阅读 2,726评论 1 14
  • 好想再回到从前。。回到曾经。。回到记忆里,然后——再也不回来…… 回到儿时田野里疯跑的日子 回到那乡村小路 回到那...
    二丫画时光阅读 440评论 2 2
  • 前言:阅读本文大约三分钟,文中的理论来自自控力第一章,但是分析过程更多的来自个人思考。阅读时请自行带着辩证的观点来...
    孤烟客阅读 503评论 0 0

友情链接更多精彩内容