标签: nsdata

什么是NSConcreteData,它在哪里定义?

以下代码:

[[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:mapURL]]
Run Code Online (Sandbox Code Playgroud)

返回NSConcreteData的一个实例,而不是NSData(我期望!).NSConcreteData表示什么,确切地说,以及为什么返回它而不是NSData的实例?此外,这个类定义在哪里?XCode抱怨它尚未定义,但我不知道为了获得课程我应该包括什么.

任何帮助赞赏!

iphone cocoa-touch nsdata

13
推荐指数
1
解决办法
8028
查看次数

-dataWithContentsOfURL:NSData在后台线程中工作吗?

-dataWithContentsOfURL:NSData在后台线程中工作吗?

iphone nsdata

13
推荐指数
3
解决办法
1万
查看次数

NSData isEqualtoData

我真的不明白这里发生了什么.

我有一个函数从NSData对象receiveStream获取前3个字节,并通过char数组将它们放入另一个NSData对象temp中.然后将其与从char数组缓冲区创建的NSData对象进行比较.两个新的NSData对象都已创建并具有正确的内容.但是,当调用isEqualtoData时,我收到一个错误:

[NSConcreteData isEqualtoData:]:发送到实例无法识别的选择(例如是指TMP2)

我也得到了警告

未找到实例方法'-isEqualtoData:'(返回类型默认为'id')

我不明白,因为很明显这是文档中的有效方法.我需要在某处声明NSData.h吗?

-(BOOL)checkHeader{
    char tmp[3];
    [receivedStream getBytes:&tmp length:3];
    NSData *temp = [NSData dataWithBytes:tmp length:3];
    NSData *tmp2 = [NSData dataWithBytes:header length:3];
    BOOL test = [tmp2 isEqualtoData:temp];
    return test;
}
Run Code Online (Sandbox Code Playgroud)

objective-c nsdata

13
推荐指数
1
解决办法
1万
查看次数

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

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

data-compression nsdata ios

13
推荐指数
3
解决办法
2万
查看次数

在没有临时文件的情况下解压缩NSData

我发现了一些允许在iPhone上解压缩文件的libs(LiteZipZipArchive).但是它们都需要输入作为文件.是否有一个库允许直接解压缩包含zip存档数据的NSData而不将其写入临时文件?
我试图采用上面提到的libs,但到目前为止没有成功.

iphone objective-c unzip nsdata

12
推荐指数
1
解决办法
6540
查看次数

在Mac OS X上,如何在64位进程中中等大小的内存分配失败?

我正在构建照片书布局应用程序.应用程序经常将JPEG图像解压缩到内存位图缓冲区中.图像的大小限制在100万像素(而它们通常不超过1500万像素).

有时这些缓冲区的内存分配失败:[[NSMutableData alloc] initWithLength:]返回nil.这似乎发生在系统的自由物理内存接近零的情况下.

我的理解在Mac OS X中的虚拟内存系统是在64位进程的分配实际上(原文如此),不能失败.有16个exabyte的地址空间,我试图一次分配最多400兆字节.从理论上讲,我可以分配400亿个缓冲区而不会遇到可用地址空间的硬限制.当然,实际限制会阻止这种情况,因为交换空间受启动卷大小的限制.实际上,我只做了很少的这些分配(少于10个).

我不明白的是,无论物理内存有多低,分配都会失败.我认为 - 只要有交换空间,内存分配就不会失败(因为此时页面甚至没有映射).

该应用程序是垃圾收集.

编辑:

我有时间进一步深入研究这个问题,这是我的发现:

  1. 该问题仅发生在垃圾收集过程中.
  2. 当分配NSMutableData失败时,普通malloc仍然可以成功分配相同数量的内存.
  3. 当整体物理内存接近零(交换即将发生)时,总会发生错误.

我假设NSData用于NSAllocateCollectable执行分配而不是malloc在垃圾收集下运行时.

我的结论是,当物理内存很低时,收集器无法分配大块内存.再一次,我不明白.

macos 64-bit memory-management nsdata

12
推荐指数
1
解决办法
2332
查看次数

将nsdictionary转换为nsdata

有一个应用程序,可以拍照,然后上传到服务器.将它编码为base 64并将其通过XMLRPC传递给我的php服务器.

我想获取从UIImagePickerController委托返回的NSDictionary信息

-(void) imagePickerController:(UIImagePickerController *)imagePicker didFinishPickingMediaWithInfo:(NSDictionary *)info
Run Code Online (Sandbox Code Playgroud)

并将其转换为NSData,以便我可以对其进行编码.

那么,我如何将NSDictionary转换为NSData?

iphone objective-c nsdictionary uiimagepickercontroller nsdata

12
推荐指数
2
解决办法
2万
查看次数

使用loadData在UIWebView中显示PDF

我正在尝试显示我在UIWebView中本地存储的PDF.这就是我目前尝试这样做的方式:

if (![[NSFileManager defaultManager] fileExistsAtPath:self.url]) {
LOG_ERROR(@"Couldn't load local file. File at path: %@ doesn't exist", self.url);
        return; 
}

nsurl=[NSURL fileURLWithPath:self.url];
NSData *data = [NSData dataWithContentsOfFile:self.url];
LOG_DEBUG(@"data length:%d",[data length]);
[self.webView loadData:data MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];
Run Code Online (Sandbox Code Playgroud)

我也试过传递nil for textEncoding,以及使用UIWebView的loadRequest.结果是一个显示空白页面的UIWebView.UIWebView委托方法中没有错误发生.奇怪的是,对于我试图显示的PDF,数据具有正确的长度(以字节为单位),这意味着正在找到并正确加载文件.

有没有人知道这里可能出现的问题或者我如何更好地调试这个问题?

pdf uiwebview nsdata

11
推荐指数
1
解决办法
2万
查看次数

如何从NSData播放视频

大家好,我想知道是否可以使用MPMoviePlayerController从NSData对象播放视频.

谢谢,塞尔吉奥

playback mpmovieplayercontroller nsdata

11
推荐指数
1
解决办法
1万
查看次数

iOS UIImageJPEGRepresentation错误:不是JPEG文件:以0xff 0xd9开头

我正在将.jpg文件写入我的应用程序的Documents目录,如下所示:

NSData *img = UIImageJPEGRepresentation(myUIImage, 1.0);
BOOL retValue = [img writeToFile:myFilePath atomically:YES];
Run Code Online (Sandbox Code Playgroud)

之后,我使用以下命令将该图像加载回UIImage:

UIImage *myImage = [UIImage imageWithContentsOfFile:path];
Run Code Online (Sandbox Code Playgroud)

我知道它有效,因为我可以在表格单元格中绘制图像,这很好.现在,如果我尝试使用UIImageJPEGRepresentation(myImage,1.0),调试器会打印出这些行:

<Error>: Not a JPEG file: starts with 0xff 0xd9
<Error>: Application transferred too few scanlines
Run Code Online (Sandbox Code Playgroud)

函数返回nil.有没有人知道为什么会这样?加载后我没有做任何事情来操纵UIImage数据.我刚刚将UIImage提供给单元格中的图像视图.我设置了图像视图属性,使得单元格中的所有图像对齐并且大小相同,但我认为这与将UIImage转换为NSData无关.

iphone uiimageview uiimage nsdata uiimagejpegrepresentation

11
推荐指数
1
解决办法
1万
查看次数