NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:kUserEntityName]; // 返回数据的排序规则...setDelegate:self]; NSError *error = nil; if (!...当然,也可以选择Binary Data: 保存前,调用NSKeyedUnarchiver的archivedDataWithRootObject:方法返回NSData类型数据,让Core Data可以对其进行保存...; 取回时,用NSKeyedUnarchiver的unarchiveObjectWithData:方法,将取回的NSData数据,转换回数组、字典对象。...value) { return nil; } if ([value isKindOfClass:[NSData class]]) { return
,该函数的返回值类型为数组。...返回值之所以是数组因为,作用域里会有若干个相同的目录。...NSKeyedArchiver archiveRootObject:personList toFile:arcPath]; // 使用反归档类,获取已归档的数据 // Person person = [NSKeyedUnarchiver...arcPath]; // NSLog( @"%@, %@, %ld", person.name, person.gender, person.age ) ; NSArray person = [NSKeyedUnarchiver...unarchiveObjectWithFile:arcPath]; NSLog( @"%@", person ) ; // 返回当前应用程序的所在的主目录,即沙箱目录。
确保在不同版本的应用程序中始终使用相同的配置文件。 三、在APP中使用Keychain 钥匙串项目可以具有几个类型之一。...如果密码在keychain上,则该函数将密码返回给App,App将其发送到FTP服务器以对用户进行身份验证。如果认证成功,则例程结束。如果认证失败,App将显示一个对话框来请求用户名和密码。...如果密码不在keychain上,则SecItemCopyMatching返回errSecItemNotFound结果代码。在这种情况下,App显示一个对话框来请求用户名和密码。...]; } + (id)ht_valueForKey:(NSString *)key{ id ret = nil; NSMutableDictionary *keychainItem =...(CFDictionaryRef)keychainItem, (CFTypeRef *)&keyData) == noErr) { @try { ret = [NSKeyedUnarchiver
NSDictionarydictionaryWithObjectsAndKeys: @"balance", @"key", @"remaining balance",@"label", @"45", @"value", @"USD", @"currencyCode",nil...-> NSDictionary NSData *data = [[NSMutableData alloc]initWithContentsOfFile:[self dataFilePath]]; NSKeyedUnarchiver...*unarchiver =[[NSKeyedUnarchiver alloc] initForReadingWithData:data]; NSDictionary *myDictionary =...]; [data release]; 7: NSData NSArray 转换 NSArray *arr1= [[NSArray alloc]initWithObjects:@"0",@"5",nil...]; NSData *data= [NSKeyedArchiver archivedDataWithRootObject:arr1]; NSArray *arr2= [NSKeyedUnarchiver
今天在使用数据库的时候,遇到一个场景,即在插入数据完成后需要返回此数据对应的自增主键id,但是在使用Mybatis中的generatedKey且确认各项配置均正确无误的情况下,每次插入成功后,返回的都是...终于凭借着一次Debugg发现的问题,原来在使用Mabatis中的insert或者insertSelective方式插入时,如使用int insert(TestGenKey testGenKey)时,返回值...int表示的是插入操作受影响的行数,而不是指的自增长id,那么返回的自增id到底去哪里了呢?...通过下面的Debugg我们知道自增id返回到testGenKey的原对象中去了。 举例示范配置 数据库示例表 generator的配置文件 <?...sex.trim(); } } 测试及Debugg 编写测试方法测试插入 插入成功后观察对应的变量对应的值 总结:调用Insert后插入操作之后,所得到自增长Id被赋值到原对象当中,而不是返回值
我们还可以用NSKeyedArchiver方式来进行归档,用NSKeyedUnarchiver相应的方式进行反归档。...stringByAppendingPathComponent:@"ArchiverArray.archiver"]; [NSKeyedArchiver archiveRootObject:dataArray toFile:arrayName];// NSKeyedUnarchiver...newDictionary=[NSKeyedUnarchiverunarchiveObjectWithFile:dictionaryName]; NSMutableArray *newArray=[NSKeyedUnarchiver...card3, card4, nil
in callBack(success: true, operation: operation, responseObject: responseObject, error: nil...removeObserver(self, forKeyPath: "fractionCompleted", context: nil) } progress?....} -(void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag{ // 反归档 NSKeyedUnarchiver...*unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; self.filePathArray = [unarchiver...NSLog(@"%@",self.filePathArray); [self.tableView reloadData]; } 下载是通过列表中的文件路径发送给服务端,然后服务端根据其路径找到文件返回去
试想,如果我们可以将用户的登录返回信息模型,游戏中角色的属性信息模型进行直接的持久化存取,那是不是非常爽的事,幸运的是,我们可以通过归档,来设计一个这样的数据模型。...其存储与读取的过程,主要封装在两个类中:NSKeyedArchiver和NSKeyedUnarchiver。...init]; unsigned int * count = malloc(sizeof(unsigned int)); //调用runtime的方法 //Ivar:方法返回的对象内容对象...,这里将返回一个Ivar类型的指针 //class_copyIvarList方法可以捕获到类的所有变量,将变量的数量存在一个unsigned int的指针中 Ivar * mem = class_copyIvarList...NSUTF8StringEncoding]; [array addObject:str]; } //释放内存 free(count); //注意处理野指针 count=nil
NSKeyedUnarchiver *archiver = [[NSKeyedUnarchiver alloc] initForReadingWithData: theData]; //使用与归档编码使用相同的键对象进行解码...该函数sqlite3_open返回SQLITE_OK打开成功。 sqlite3_exec(db, [tablesql UTF8String], NULL, NULL,&err) !...= SQLITE_OK sqlite3_exec是执行任何不带返回值sql语句,第2个参数是要执行的sql语句,第3个参数是要回调函数,第4个参数是要回调函数的参数,第5个参数是执行出错的字符串...; sqlite3_close(db); } } sqlite3_prepare_v2(db, [sqlStr UTF8String], -1,&statement, nil...]; [self setStudentName: nil]; [self setStudentClass: nil]; [super viewDidUnload]; } - (void
回到根控制器:- (NSArray *)popToRootViewController ainimated:(BOOL)animated; 3)UINavigationItem的属性: //左上角的返回按钮...NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; NSString *path2 = [NSHomeDirectoryForUser(nil...3)、使用NSKeyedArchiver对自定义对象进行归档, 使用NSKeyedUnarchiver解析归档对象 首先自定义类需要实现NSCoding协议,然后实现方法 - (void...; } } /* 使用NSKeyedUnarchiver解析归档对象 */ - (IBAction)readyDataByArchiver:(id)sender{ NSString *...*unArchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; TanPerson *person1 = [unArchiver
= nil) { [query setObject:[self getFullAccessGroup:group] forKey:(__bridge id)kSecAttrAccessGroup...= nil && [group rangeOfString:bundleSeedIdentifier].location == NSNotFound) { accessGroup = [...== nil) { NSString *_bundleSeedIdentifier = nil; NSDictionary *query...)kCFBooleanTrue }; CFDictionaryRef result = nil...CFDictionaryRef)query, (CFTypeRef *)&keyData) == errSecSuccess) { @try { value = [NSKeyedUnarchiver
query; } + (NSString \*)getFullAccessGroup:(NSString \*)group { NSString \*accessGroup = nil...= nil && [group rangeOfString:bundleSeedIdentifier].location == NSNotFound) { accessGroup =...== nil) { NSString \*\_bundleSeedIdentifier = nil; NSDictionary \*...= nil) { bundleSeedIdentifier = [\_bundleSeedIdentifier copy];...CFDictionaryRef)query, (CFTypeRef \*)&keyData) == errSecSuccess) { @try { value = [NSKeyedUnarchiver
@"sessionCookies"]; [defaults synchronize]; } + (void)loadCookies{ NSArray *cookies = [NSKeyedUnarchiver...pars callback:(ZJAFNetworkingBlock) callback{ [ZJAFNetworkingKit getWithUrl:url pars:pars auth:nil...^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { callback(false,nil...^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { callback(false,nil...)pars callback:(ZJAFNetworkingBlock)callback{ [ZJAFNetworkingKit postWithUrl:url pars:pars auth:nil
requestWithMethod:@"GET" URLString:@"http://www.psvmc.cn/login.json" parameters:parametersDic error:nil...AFHTTPSessionManager manager]; manager.responseSerializer = [AFHTTPResponseSerializer serializer]; 如果不指定 默认如果返回的格式是...json类型 返回的responseObject就是NSDictionary类型 可以类似这样取值responseObject[@"msg"] 如果不是json格式 就为nil 如果返回格式不固定 或者自己处理...sessionCookies"]; [defaults synchronize]; } //设置cookie - (void)loadCookies{ NSArray *cookies = [NSKeyedUnarchiver...Nonnull response) { //下载地址 NSLog(@"默认下载地址:%@",targetPath); //设置下载路径,通过沙盒获取缓存地址,最后返回
:@"1", @"2", @"3", nil]; NSArray *array = [NSArray arrayWithObjects:@"a", @"b", @"c", nil]; NSSet *set3...= [NSMutableSet setWithObjects:@"1", @"c", @"b", nil]; //集合元素相减 [mutableSet1 minusSet:mutableSet2];...]; 3>.解归档 直接从文件解归档 NSDictionary *Undict = [NSKeyedUnarchiver unarchiveObjectWithFile...NSData,在从NSData解归档 NSData *UndictData = [fm contentsAtPath:docPath]; NSDictionary *Undict = [NSKeyedUnarchiver...如果指定为NULL的话就会使用默认的行为,返回值是BOOL类型的方法,操作成功返回YES反之返回NO 判断文件是否被删除 if([fm removeItemAtPath:@"filename" error
sharedDataBase] getAllPerson]; [self.tableView reloadData]; } 知识点 arc4random_uniform(uint32_t)会随机返回一个...[[DataBase sharedDataBase] addPerson:person];中的sharedDataBase方法返回一个该类的静态实例static DataBase *_DBCtl。...intForColumn:@"age"]; dto.score = [re doubleForColumn:@"score"]; dto.arr = [NSKeyedUnarchiver...unarchiveObjectWithData:[re dataForColumn:@"arr"]]; dto.dic = [NSKeyedUnarchiver unarchiveObjectWithData...:[re dataForColumn:@"dic"]]; dto.book = [NSKeyedUnarchiver unarchiveObjectWithData:[re dataForColumn
standardDefaults = [NSUserDefaults standardUserDefaults]; if ([standardDefaults stringForKey:@"favoriteColor"] == nil...synchronize]; 读取 NSData *newPersonData = [standardDefaults objectForKey:"personKey"]; Person *Person = [NSKeyedUnarchiver
NSMutableData *data = [[NSMutableData alloc]initWithContentsOfFile:[self GetThefilePath:@"archiver.archiver"]]; NSKeyedUnarchiver...*unarchiver = [[NSKeyedUnarchiver alloc]initForReadingWithData:data]; Archiver *arch = [unarchiver decodeObjectForKey...利用runtime 获取所有属性来进行字典转模型,其实就是根据创建的Model,把网络返回来的字典数据赋值到Model中,对Model属性进行赋值。...substringFromIndex:1]; // 取出字典的值 id value = dict[key]; // 如果模型属性数量大于字典键值对数理,模型属性会被赋值为nil...:@"nil"; [dictionary setObject:value forKey:name]; } free(properties);
与之相对的有一个类叫 NSKeyedUnarchiver ,顾名思义就是反归档了,也可以叫解档,可以将之前归档的数据恢复成原始数据。...Cloudox" toFile:demoPath];// 归档一个字符串 if (flag) NSLog(@"归档成功"); NSLog(@"解档后为:%@", [NSKeyedUnarchiver...随后的 archiveRootObject: toFile: 方法就是将一个对象归档并存储到文件位置了,很简单明了,这个方法会返回一个布尔值,表示是否归档存储成功了。...存储解档后多个对象的容器 NSMutableData *unMultiData = [[NSMutableData alloc] initWithContentsOfFile:multiPath]; NSKeyedUnarchiver...*multiUnarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:unMultiData]; NSString *unName
{ [itemProvider loadItemForTypeIdentifier:(NSString *)kUTTypePropertyList options:nil...{ [itemProvider loadItemForTypeIdentifier:(NSString *)kUTTypePropertyList options:nil...; NSInteger s = 0; NSString *strneed = nil; for(int i =0; i < [url length]; i++) { ... }); } 初始化session - (NSURLSession *)backgroundSession { static NSURLSession *backgroundSess = nil...NSData *myEncodedObject = [mydefalut objectForKey:@"chatviewcontrollerdata"]; self.arrModels = [NSKeyedUnarchiver