我有一个大约1000kB的NSData对象.现在我想通过蓝牙传输.如果我拥有10个100kB的物体,那会更好.我想到我应该使用-subdataWithRange:NSData 的方法.
我没有真正使用过NSRange.好吧,我知道它是如何工作的,但我无法弄清楚如何从一个给定位置读取长度:'到文件末尾'......我不知道该怎么做.
有关如何将其拆分为多个100kB NSData对象的一些代码将真正帮助我.(它可能涉及-length查看应该制作多少个对象的方法..?)
先感谢您.
我有个问题.我需要将base64字符串转换为JSON字符串并将其传递给服务器.例如,我有一个base64字符串/9j/4AAQSkZJRgABAQAAAQABAAD/4QBYRXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAABAAAAJgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAACqADAAQAAAABAAAACgAAAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/Z
我需要将其转换为JSON格式.我做以下事情:
+(NSData *)prepareForUploading:(NSString *)base64Str
{
NSDictionary *dict=[NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:base64str, nil] forKeys:[NSArray arrayWithObjects:@"picture", nil]];
NSData *preparedData=[NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:nil];
return preparedData;
};
Run Code Online (Sandbox Code Playgroud)
在这我是如何制作的 NSURLRequest
-(NSString *)uploadPict:(NSString *)pict
{
NSLog(@"Server: upload: called");
NSData *prepPictData=[[self class] prepareForUploading:pict];
NSString *preparedBase64StrInJSON=[[NSString alloc] initWithData:prepPictData encoding:NSUTF8StringEncoding];
//here I'm adding access token to request
NSString *post = [NSString stringWithFormat:@"accessToken=%@&object=%@", self.key, preparedBase64StrInJSON];
NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@upload.aspx", serverAPIPath]]];
[request …Run Code Online (Sandbox Code Playgroud)