标签: nsdata

如何在Objective C中使用NSData存储图像

我如何获取UIImage并将其存储为NSData(写入文件)?有没有明显的方法,或者有人可以提供代码片段?

提前致谢!

PS.我的下一个问题可能是用于捕获当前屏幕图像的代码段.到目前为止,我看到的片段似乎对我需要的东西严重矫枉过正.

screen-scraping file objective-c uiimage nsdata

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

从NSMutableData中删除第一个字节

NSMutableData *requestData = (NSMutableData*)[request responseData];
Run Code Online (Sandbox Code Playgroud)

回报

"[{JSON_STRING}]"

所以我想删除"["/"]"而不转换为NSString然后再转回NSData.最简单的方法是去除第一个和最后一个字节.

[requestData setLength:[requestData length]-1]; 删除最后一个字节.

如何删除第一个字节?我尝试了下面的解决方案,但不起作用..

NSRange range = {0, 1};
[requestData resetBytesInRange:range];
Run Code Online (Sandbox Code Playgroud)

iphone nsdata

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

具有旧NSData维护字节范围的新NSData

我有一个相当大的NSData(或NSMutableData,如果有必要)对象,我想从一个小块中取出并离开其余部分.由于我正在使用大量的NSData字节,我不想制作大的副本,而只是截断现有的字节.基本上:

  • NSData*source:<我要丢弃的几个字节> + <我要保留的大块字节>
  • NSData*destination:<我要保留的大块字节>

NSMutableData中有截断方法,但它们只截断它的结尾,而我想截断开头.我的想法是用这些方法做到这一点:

请注意,我在原始发布中使用了错误的(复制)方法.我已经编辑并修复了它

- (const void *)bytes
Run Code Online (Sandbox Code Playgroud)

- initWithBytesNoCopy:length:freeWhenDone:
Run Code Online (Sandbox Code Playgroud)

但是,我正在试图弄清楚如何用这些管理内存.我猜这个过程会是这样的(我把它放在哪里,我不知道该怎么做):

// Get bytes
const unsigned char *bytes = (const unsigned char *)[source bytes];

// Offset the start
bytes += myStart;

// Somehow (m)alloc the memory which will be freed up in the following step
?????

// Release the source, now that I've allocated the bytes
[source release];

// Create a new data, recycling the bytes so they don't have to be copied
NSData destination = …
Run Code Online (Sandbox Code Playgroud)

truncate nsdata nsmutabledata

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

如何将24位整数转换为3字节数组?

嘿我完全超出了我的深度,我的大脑开始受伤... :(

我需要转换一个整数,以便它适合3字节数组.(是24位int?)然后再返回通过套接字从字节流发送/接收这个数字

我有:

NSMutableData* data = [NSMutableData data];

 int msg = 125;

 const void *bytes[3];

 bytes[0] = msg;
 bytes[1] = msg >> 8;
 bytes[2] = msg >> 16;

 [data appendBytes:bytes length:3];

 NSLog(@"rtn: %d", [[[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding] intValue]);

 //log brings back 0
Run Code Online (Sandbox Code Playgroud)

我想我的主要问题是我不知道如何检查我确实正确地转换了我的int,这也是我需要做的转换以及发送数据.

任何帮助非常感谢!

bytearray objective-c nsdata bytestring tcpsocket

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

UIImagePNGRepresentation()返回不同的字节

我有一些透明的图像,我从文件系统加载到UIImageView视图中.出于我的目的,我需要UIImageView将文件中的图像与文件系统上的文件进行比较.所以我做了类似以下的事情:

NSString *directoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *imageFile = [NSString stringWithFormat:@"%@/image.png", directoryPath];

if ([[NSData dataWithContentsOfFile:imageFile] isEqualToData:UIImagePNGRepresentation([imageView image])]) {
    NSLog(@"Equal");
} else {
    NSString *dataDescription = [[[NSData dataWithContentsOfFile:feltFile] description] substringToIndex:100];
    NSString *imageDescription = [[UIImagePNGRepresentation([backgroundImageView image]) description] substringToIndex:100]
    NSLog(@"Unequal: %@ %@", dataDescription, imageDescription);
}
Run Code Online (Sandbox Code Playgroud)

我知道他们是PNG图像.打印时,这两个描述都不是NULL.但他们是不平等的.

为什么会这样?

iphone png uiimage nsdata uiimagepngrepresentation

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

使用NSKeyedArchiver将[UIColor colorWithPatternImage:image] UIColor保存到核心数据

我无法使用工厂方法创建的UIColor(带有模式)创建NSData对象

[UIColor colorWithPatternImage:image]

适用于标准UIColor对象.想知道是否有另一种方法可以将带有模式的UIColor保存到Core Data中.

我使用以下代码存档UIColor(带图案)...

- (id)transformedValue:(id)value {
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:value];
return data;
Run Code Online (Sandbox Code Playgroud)

}

这些是我收到的错误......

-[NSKeyedArchiver dealloc]: warning: NSKeyedArchiver deallocated without having had -finishEncoding called on it.

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Only support RGBA or the White color space, this method is a hack.'
Run Code Online (Sandbox Code Playgroud)

core-data nskeyedarchiver uicolor nsdata

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

来自[NSData dataWithContentsOfURL:]的NSString

对此可能有一个非常简单的答案,但我似乎无法指责它.

我正在使用(见下文)获取网址的内容

NSData *data = [NSData dataWithContentsOfURL:webURL];
Run Code Online (Sandbox Code Playgroud)

我想要做的是以可读的形式显示此NSData,而不是十六进制表示.

iphone xcode objective-c nsdata

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

如何在iOS中检查从互联网下载数据百分比?

我试图从互联网上下载数据到iOS中的NSData.

当我从互联网上下载数据时,我看不到从服务器下载了多少百分比.

我没有使用UIWebView.

.mp3使用NSData从Internet 下载sound().

我还能知道从互联网上下载了多少数据吗?

提前致谢.

nsdata ios

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

NSData到Custom NSObject

我正在尝试使用蓝牙在2个设备之间传输数据.设备A持有自定义NSObject.设备B正在接收此自定义NSObject作为NSData.

将收到的NSData解码为自定义NSObject的最佳方法是什么?

谢谢!

objective-c nsdata nsobject ios

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

如何连接多个NSData?

我的问题是下一个>我必须从外部附件接收数据并保存到一个大的NSData,每次我收到一个流我必须将其复制NSData到另一个:

CompleteNSData = NSDataTx1 + NSDataTx2 + NSDataTx3;
Run Code Online (Sandbox Code Playgroud)

最后向用户显示整个信息.

objective-c nsdata nsmutabledata external-accessory

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