Tag: nsdata

如何将NSData字节转换成NSNumber或NSInteger?

有一个特殊的NSString initWithData方法用于抓取位并将它们转换为string。 不过,我还没有发现在NSNumber类的参考。 目前,我从NSData格式的服务器获取原始数据(字节)。 我知道如何在C中使用memcpy和int指针。 但是我很好奇从NSData直接做什么的便利方法。 不需要转换。 例如,我得到00000010字节,我需要将其转换为NSNumber的值2或NSInteger 。

dataWithContentsOfURL,线程,与dataTaskWithURL – 有什么区别?

我们正在使用dataWithContentsOfURL,因为它,呃,简单… NSData *datRaw = [NSData dataWithContentsOfURL:ur]; 现在,当然,这将挂起主要的UI线程。 所以我们把它放在另一个线程。 我们这样做, -(void)performSearch:(NSString *)stuff then:(void(^)(void))after { dispatch_queue_t otherThread =dispatch_queue_create(nil,0); dispatch_queue_t mainThread =dispatch_get_main_queue(); dispatch_async(otherThread, ^{ self.resultsRA = [self … calls dataWithContentsOfURL …]; dispatch_async(mainThread, ^{ if (after) after(); }); }); } (顺便说一句,这是一个很好的介绍,如果需要https://stackoverflow.com/a/7291056/294884 ) 那么现在,苹果说,你不应该使用 dataWithContentsOfURL,他们说你应该改为使用NSSession ..所以, dataTaskWithURL:completionHandler: 我的问题, 是否有任何不同之处 ,使自己的线程(即dataWithContentsOfURL)与使用dataTask? 我们错误地使用 dataWithContentsOfURL:在一个线程,出于某种原因? PS我很欣赏这是更方便等我的意思是有真正的区别,任何危险,等谢谢!

从NSData转换的NSString中删除unicode和反斜杠转义

我正在通过以下方式将来自Web请求的响应数据转换为NSString: NSData *data = self.responseData; if (!data) { return nil; } NSStringEncoding encoding = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((__bridge CFStringRef)[self.response textEncodingName])); NSString *responseString = [[NSString alloc] initWithData:data encoding:encoding]; 但是结果string如下所示: "birthday":"04\/01\/1990", "email":"some.address\u0040some.domain.com" 我想要的是 "birthday":"04/01/1990", "email":"some.address@some.domain.com" 没有反斜杠转义和unicode。 最干净的方法是什么?

Objective-C将NSData转换为NSString

这里是我试图将NSData转换为NSString的代码,但程序返回“程序接收信号:SIGABRT”。 NSString *string= [NSString stringWithUTF8String:[data bytes]]; 要么 NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 还有其他更好的办法吗?

NSData writeToFile:primefaces地:不立即保存文件

我从网上下载一个SQLite数据库到我的iPad应用程序。 如果我以atomically: YES将其写入磁盘设置atomically: YES我不能立即使用它,因为即使文件在那里,sqlite抱怨表不在那里。 如果我使用atomically = NO或我推迟文件的开放几个时刻,那么我没有这个问题。 我想我可以通过设置atomically = NO但是在writeToFile:call之后,有没有保证整个文件已经写入磁盘? 到目前为止,我的分贝并不是那么大,但最终还是会,再加上我不知道在其他设备上等待多久。 苹果文档说,如果操作成功,则此方法返回YES ,但显然不考虑保存文件的“滞后”。 任何帮助是极大的赞赏! 编辑:我看到其他人都有同样的问题 。

Game Center matchData的最佳实践

我是GKTurnBasedMatch的新手,我试图弄清楚在轮到队员之间发送的“matchData”是什么好的做法。 我发现的所有教程主要包括发送一串文本,我想发送更多的东西。 如果有人能给我一个更高级的教程,那将是非常棒的。 我想做的一个例子是一场战斗。 这两个玩家有他们的化身,他们有不同的细节(健康,攻击,防守等),我应该如何发送这些数据? 我认为可能的唯一方法是将所有的匹配细节(很多)编码成一个NSDictionary并发送,以便它们可以再次放回到自定义匹配对象中。 我应该实施NSCoding? 谢谢!

iOS – 仅在修改时下载文件(NSURL和NSData)

我正在从服务器上下载一大堆图像文件,而且我想确保只有在更新的情况下才能下载它们。 这种方法目前下载图像就好了。 但是,我不想浪费时间或精力重新下载图像,每次用户login到应用程序。 相反,我只想下载任何文件A)不存在B)在服务器上比在设备上更新 这里是我如何下载图像:*图像的url是保存在核心数据与它关联的video。 该url是使用一个简单的转换方法生成的(generateThumbnailURL) -(void)saveThumbnails{ NSManagedObjectContext *context = [self managedObjectContextThumbnails]; NSError *error; NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"Videos" inManagedObjectContext:context]; [fetchRequest setEntity:entity]; NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error]; NSLog(@"Videos: %i",fetchedObjects.count); if (fetchedObjects.count!=0) { for(Videos *currentVideo in fetchedObjects){ // Get an image from the URL below NSURL *thumbnailURL = [self […]

在NSString中将NSData显示为二进制

我在资源文件夹中有一个二进制文件(file.bin),我想读取它并将其显示为二进制文件。 这个想法是把二进制信息放到一个数组中,但是起初我试图用UILabel来展示它,就像这样: `NSData * databuffer; NSString * stringdata; NSString *filePath = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"bin"]; NSData *myData = [NSData dataWithContentsOfFile:filePath]; if (myData) { stringdata = [NSString stringWithFormat:@"%@",[myData description]]; labelfile.text = stringdata; } ` 但它显示在hex数据。 如何在二进制文件中将其放入NSMutableArray中? 谢谢。

如何将dispatch_data_t转换为NSData?

这是正确的吗? // convert const void *buffer = NULL; size_t size = 0; dispatch_data_t new_data_file = dispatch_data_create_map(data, &buffer, &size); if(new_data_file){ /* to avoid warning really – since dispatch_data_create_map demands we care about the return arg */} NSData *nsdata = [[NSData alloc] initWithBytes:buffer length:size]; // use the nsdata… code removed for general purpose // clean up [nsdata […]

dataWithContentsOfURL返回NSCocoaErrorDomain代码= 256蜂窝,但不是WiFi

真的很奇怪的问题,我有:dataWithContentsOfURL已经开始返回一个错误代码256蜂窝,但不是通过WiFi。 操作无法完成。 (cocoa错误256) 我确实有一个蜂窝数据连接,它正在运行,所以这不是我的蜂窝连接的问题。 加上代码在wifi上运行良好,所以基本代码不是问题。 有问题的代码是: dispatch_queue_t queue = dispatch_queue_create("com.appName.FetchImage", DISPATCH_QUEUE_SERIAL); dispatch_async(queue, ^{ … NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]]; NSLog(@"URL: %@", url); [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; NSError *error = [[NSError alloc] init]; NSData *imgData = [NSData dataWithContentsOfURL:url options:NSDataReadingUncached error:&error]; if (error) NSLog(@"Error loading data: %@", error); UIImage *image = [UIImage imageWithData:imgData]; … }); 有什么想法吗? […]