如果NSData<固定大小的可可

时间:2013-08-30 04:46:21

标签: objective-c macos cocoa byte nsdata

我遇到了问题:我使用以下代码从 NSData 获取数据,但我想从 [0; 2048]字节获取数据。如果我的数据&gt; 2048 * 强文 *,它可以正常运行,但如果我data < 2048,那就错了。因此,如果我的data < 2048足够 2048字节,我想最后添加更多空格。你能帮助我吗?非常感谢。

 NSData *data = [NSData dataWithBytes:[arrayText UTF8String] length:[arrayText lengthOfBytesUsingEncoding:NSUTF8StringEncoding]];
 NSData *datawrite = [data subdataWithRange:NSMakeRange(0, 2048)];

如果data > 2048 bytes,如果data < 2048 bytes,我的MAC应用程序挂起,则上面的代码可以正常工作。请给我任何建议。提前致谢

1 个答案:

答案 0 :(得分:0)

好的,这将从data复制尽可能多的字节(最多2048个)。如果结果是&lt; 2048字节,新数据将填充到2048字节。

NSMutableData * datawrite = [ data subdataWithRange:(NSRange){ 0, MIN( 2048, data.length ) } ] mutableCopy ] ;
[ datawrite setLength:2048 ] ;

但是:你能告诉我们更广泛的申请吗?这似乎是一个奇怪的用例,我想了解更多。