Tag: nsdata

如何从iOS应用程序使用POST发送NSData?

NSData *imageData = UIImagePNGRepresentation(image); 如何使用POST发送imageData?

NSData dataWithContentsOfURL:不返回浏览器中显示的URL的数据

我正在为Stack Exchange API制作iOS客户端。 经过漫长的斗争之后,我终于设法实现了身份validation – 这为我提供了一个令我坚守的URL。 当令牌有效时,URL如下所示: https://api.stackexchange.com/2.1/me/associated?key=_____MY_SECRET_KEY______&access_token=_____ACCESS_TOKEN_:)_____ 这个在合法的时候会把我带到这个JSON的网页中: {"items":[{"site_name":"Stack Overflow","site_url":"http://stackoverflow.com","user_id":1849664,"reputation":4220,"account_id":1703573,"creation_date":1353769269,"badge_counts":{"gold":8,"silver":12,"bronze":36},"last_access_date":1375455434,"answer_count":242,"question_count":26},{"site_name":"Server Fault","site_url":"http://serverfault.com","user_id":162327,"reputation":117,"account_id":1703573,"creation_date":1362072291,"badge_counts":{"gold":0,"silver":0,"bronze":9},"last_access_date":1374722580,"answer_count":0,"question_count":4},… 我用这个代码得到正确的JSON: NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://api.stackexchange.com/2.1/me/associated?key=__SECRET_KEY_:)__&access_token=%@", [[NSUserDefaults standardUserDefaults] objectForKey:@"token"]]]; NSData *jsonData = [NSData dataWithContentsOfURL:url]; if (jsonData) { NSDictionary *JSON = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:nil]; } 但是,当手动使令牌无效时,URL仍然看起来相同,浏览器中的页面显示如下: {"error_id":403,"error_name":"access_denied","error_message":"`key` is not valid for passed `access_token`, token not found."} 但是, dataWithContentsOfURL:始终为零 。 为什么? 我究竟做错了什么? 我得到一个NSError返回: […]

NSData contentsOfUrl返回nil

我在StackOverflow上发现了几个类似的问题,但是没有一个解决我的问题。 我正在尝试从url获取图片。 以下是我如何做到这一点: let url = NSURL(string: "http://pic3.zhimg.com/8161ba9638273e0fb1a0201789d22d8e_m.jpg") let data = NSData(contentsOfURL: url!) let image = UIImage(data: data!) 但是我得到一个错误,告诉我data是零。 我该如何解决这个问题? 谢谢。 UPDATE 以下是错误的一些截图:

'bytes'不可用:改用withUnsafeBytes

以前在Swift 2.2中工作的代码现在在Swift 3中抛出下面的错误: 这是我的代码: let tempData: NSMutableData = NSMutableData(length: 26)! tempData.replaceBytes(in: NSMakeRange(0, data.count), withBytes:data.bytes) 我应该用什么来replace“data.bytes”来修复错误? 我已经尝试过实施“withUnsafeBytes”,看看苹果公司的文档,但不能把我的头脑搞定!

将NSData转换为SecKeyRef

我有一个公共密钥,我从远程服务器收集,我想用该公钥进行RSAencryption。 但问题是我得到公钥数据缓冲区中的字节数组。 我可以将其转换为NSData,但我不能转换为SecKeyRef,所以我可以继续encryption。 我的encryption代码是这样的: +(NSString *)encryptRSA:(NSString *)plainTextString withKey:(SecKeyRef)publicKey { size_t cipherBufferSize = SecKeyGetBlockSize(publicKey); uint8_t *cipherBuffer = malloc(cipherBufferSize); uint8_t *nonce = (uint8_t *)[plainTextString UTF8String]; SecKeyEncrypt(publicKey, kSecPaddingOAEP, nonce, strlen( (char*)nonce ), &cipherBuffer[0], &cipherBufferSize); NSData *encryptedData = [NSData dataWithBytes:cipherBuffer length:cipherBufferSize]; return [encryptedData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength]; } 正如你所看到的,我需要SecKeyRef对象types来完成我的encryption。 但是我的RSA公钥在NSDatavariables中。 那么如何将NSData转换为SecKeyRef对象types。 提前致谢。

有没有一种实用的方法来压缩NSData?

我还没有看到关于这个主题的任何文档,但是这并不意味着它不存在。

我怎样才能得到uiimage的原始nsdata?

在我的应用程序中,用户可以从专辑或照相机中select一张照片,在这里我可以获得uiimage表示。 由于专辑可能有来自networking的图片,文件types不仅是JPG。 然后我需要将它发送到服务器没有转换。 在这里,我只能使用nsdata。 我知道UIImageJPEGRepresentation和UIImagePNGRepresentation,但我认为这两种方法可能会转换原始图像。 也许当质量设置为1 UIImageJPEGRepresentation可以得到原始图片? 有没有办法得到原始的uiimage nsdata?

相机图像的方向

在我的应用程序中,我使用相机捕捉图像。 这些被存储在NSArray作为一个NSData表示。 当我将NSData转换回图像时,现在的方向是横向而不是纵向。 NSData *data = UIImagePNGRepresentation([arrayImage objectAtIndex:0]); UIImage *tmp = [UIImage imageWithData:data]; 任何人有一个解释? 谢谢。

从一个NSData对象在Swift中创build一个数组

我试图在swift中存储一个整数数组到磁盘。 我可以让他们进入一个NSData对象来存储,但将它们返回到一个数组是困难的。 我可以用data.bytes得到一个原始的COpaquePointer数据,但是找不到用这个指针初始化一个新的swift数组的方法。 有谁知道如何做到这一点? import Foundation var arr : UInt32[] = [32,4,123,4,5,2]; let data = NSData(bytes: arr, length: arr.count * sizeof(UInt32)) println(data) //data looks good in the inspector // now get it back into an array?

将NSAttributedString转换为数据进行存储

我有一个UITextView属性文本和allowsEditingTextAttributes设置为true 。 我试图将属性的string转换成一个数据对象,使用下面的代码: let text = self.textView.attributedText let data = try text.data(from: NSMakeRange(0, text.length), documentAttributes: [:]) 但是,这是抛出以下错误: Error Domain=NSCocoaErrorDomain Code=66062 "(null)" 任何想法这个错误意味着什么或可能导致这种情况? 我在最新的Xcode和iOS上。 谢谢。