标签: nsdata

如何初始化NSData以存储MAX_SIZE_BUFFER字节?

我刚刚意识到我在Xcode NSData Class参考中丢失了30分钟如何在objc中执行此操作(对不起,我在C中解释这个,因为这是唯一没有考虑太多的语言):

#define MAX_SIZE_BUFFER 500
byte *ptr;
ptr = malloc(MAX_SIZE_BUFFER * sizeof(byte));
memset(ptr, 0, MAX_SIZE_BUFFER);
Run Code Online (Sandbox Code Playgroud)

我开始像这样编码,但从未发现如何初始化MAX_SIZE_BUFFER并以智能方式将所有字节设置为0:

#define MAX_SIZE_BUFFER 500
NSData *ptr
ptr = [[[NSData] alloc] init]; // impossible to specify MAX_SIZE_BUFFER in the allocation.
Run Code Online (Sandbox Code Playgroud)

因此,我告诉自己,让我们使用类方法,如:

+ data
+ dataWithBytes:length:
+ dataWithBytesNoCopy:length:
+ dataWithBytesNoCopy:length:freeWhenDone:
+ dataWithContentsOfFile:
+ dataWithContentsOfFile:options:error:
+ dataWithContentsOfMappedFile:
+ dataWithContentsOfURL:
+ dataWithContentsOfURL:options:error:
+ dataWithData:
Run Code Online (Sandbox Code Playgroud)

但是没有一个能够实现alloc和blank init.

例如:+ dataWithBytes:length:要求创建备用C缓冲区并将其作为方法的参数给出.

我应该认为自己像个白痴,还是像个坏的程序员?

说真的,你有一个聪明而简单的方法吗?

Apple92

buffer initialization objective-c nsdata

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

如何从NSData获取信息?

我是iOS新手.

NSData的:

{
"results" : [
  {
     "formatted_address" : "Proyezd Voskresenskiye Vorota, 3, Moscow, Russia, 109012",
     "geometry" : {
        "location" : {
           "lat" : 55.75622380,
           "lng" : 37.61855850
        } 
Run Code Online (Sandbox Code Playgroud)

我只需要"formatted_address",你能帮我制作一个NSString,其中将是地址吗?抱歉愚蠢的问题.

iphone nsdata ios

4
推荐指数
1
解决办法
4479
查看次数

ARC下使用dispatch_write将NSData写入后台唯一文件

我正在尝试创建一个具有唯一名称的文件并在后台向其中写入数据。

mktempWhenever it is possible, mkstemp() should be used instead, since it does not have the race condition.

mkstemp在打开的文件描述符中使用结果,因此dispatch_write似乎很明显。

现在NSData必须包裹在dispatch_data_tusing中dispatch_data_create。必须注意释放需要释放的内存,保留必须保留的内存。在 ARC 下,这一点不太明显。

+ (void) createUnique:(NSData*)content name:(NSString*)name
            extension:(NSString*)extension
           completion:(void (^)(NSURL* url, NSError* error))completion {
    dispatch_queue_t queue = dispatch_get_global_queue(
                                       DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0);
    dispatch_data_t data = dispatch_data_create(content.bytes, content.length,
                                                queue, ^{});
    // dispatch_data_create() copies the buffer if DISPATCH_DATA_DESTRUCTOR_DEFAULT
    // (= NULL) is specified, and attempts to free the buffer if
    // DISPATCH_DATA_DESTRUCTOR_FREE is specified, …
Run Code Online (Sandbox Code Playgroud)

nsdata grand-central-dispatch ios automatic-ref-counting

4
推荐指数
1
解决办法
1056
查看次数

如何将Base64数据和NSData转换为字符串

我是 IOS 的新手,我正在制作一个项目,在该项目中我从 Web 服务接收 Base64 数据。如何将 Base64 数据转换为字符串以及如何在 swift 中打开 pdf 视图,并检查 iPhone 中是否安装了任何 pdf 所有者应用程序。我想知道如何在字符串 swift 中转换 NSDATA。帮我举例,例如这是Base64数据JVBERi0xLjQKJcfsj6IKNSAwIG9iago8PC9MZW5ndGggNiAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nLVcza8ct5GH1rK9ejIU24lkO5GtJ8vWm5E87eY3uXtbYLHAYi8 JdItySrABAjhA8v8fUuwmu35kF2fmxbsWDMxjk8VisapYX+TfbudJ6ds5/6s//vj

就像这样 nsdata <25504446 2d312e34 0a25c7ec 8fa20a35 2030206f 626a0a3c 3c2f4c65 6e677468 20362030 20522f46 696c7465 72202f46 6c617465 44 65636f 64653e3e 0a737472 65616d0a 789cb55c cdaf1cb7 9187d6b2 bd7a3214 db89643b 91ad27cb d69b913c

base64 nsdata ios pdf-viewer swift

4
推荐指数
1
解决办法
7781
查看次数

如何将 Int16 音频样本数据转换为浮点音频样本数组

我目前正在处理音频样本。我从 AVAssetReader 获取它们并有一个CMSampleBuffer类似这样的内容:

guard let sampleBuffer = readerOutput.copyNextSampleBuffer() else {
guard reader.status == .completed else { return nil }
// Completed
// samples is an array of Int16
let samples = sampleData.withUnsafeBytes {
  Array(UnsafeBufferPointer<Int16>(
  start: $0, count: sampleData.count / MemoryLayout<Int16>.size))
 }

 // The only way I found to convert [Int16] -> [Float]...
 return samples.map { Float($0) / Float(Int16.max)}
}

guard let blockBuffer = CMSampleBufferGetDataBuffer(sampleBuffer) else {
return nil
}

let length = CMBlockBufferGetDataLength(blockBuffer)
let sampleBytes = UnsafeMutablePointer<UInt8>.allocate(capacity: length) …
Run Code Online (Sandbox Code Playgroud)

audio avfoundation nsdata nsarray swift

4
推荐指数
1
解决办法
2637
查看次数

创建和使用虚拟NSData子类不起作用

我有一个创建自己的子类的问题NSData,我希望有一个自定义description方法.甚至创建一个虚拟NSData子类:

@interface MyData : NSData {}
@end
Run Code Online (Sandbox Code Playgroud)

@implementation MyData
@end
Run Code Online (Sandbox Code Playgroud)

并使用它会导致奇怪的错误(使用它的函数永远不会退出,并且控制会以某种方式返回到运行循环).我想也许我负责重写NSData(调用super实现)的指定初始化器,但是在doc中没有提到.所以:

  • 什么是指定的初始化器NSData
  • 我需要为虚拟子类写的最小值是NSData多少?

cocoa objective-c nsdata

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

如何以位为单位显示NSData的内容?

我有NSData,我需要以纯位查看其内容.试过NSLog [NSData description]但它返回NSString.有什么建议?

iphone cocoa-touch objective-c bit nsdata

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

增加NSData的长度

基本上,我有一个46个字符的NSString,我转换为NSData.我需要将字符串填充为48个字符.它只是在NSString的末尾加上''才能起作用.所以,我只是增加了NSData的长度:

NSString *string = @"__46characterlongstring__";
NSData *d = [string dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"d: %@", d);
NSData *data = [NSData dataWithBytes:[d bytes] length:48];
NSLog(@"data: %@", data);
Run Code Online (Sandbox Code Playgroud)

名为'd'的NSData返回<723d6c67 6e267573 65726e61 6d653d64 61766964 77617473 6f6e3936 26706173 73776f72 643d736e 30307079 6f32>

名为'data'的NSData返回<723d6c67 6e267573 65726e61 6d653d64 61766964 77617473 6f6e3936 26706173 73776f72 643d736e 30307079 6f32_ >,其中_是4个随机字符(通常是数字)

我怎样才能确保'数据'返回<723d6c67 6e267573 65726e61 6d653d64 61766964 77617473 6f6e3936 26706173 73776f72 643d736e 30307079 6f320000> - 4 0而不是4个随机字符?

谢谢.

iphone objective-c nsstring nsdata

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

将UIImage转换为NSData,将NSData转换为NSString,以便将图像发布到服务器

我有两个UIImageViews.我想通过脚本将两个图像发布到服务器.在此之前,我必须将这些图像数据和数据转换成字符串,但我不知道如何将图像从转换UIImageViewNSDataNSDataNSString.我已经提到的所有代码,但它不工作.我还想知道在我的代码中应该在哪里声明转换编码(图像到数据和数据到图像)?

这是我实施的

.h部分

  #import <UIKit/UIKit.h>
  #import "GlobalAccessClass.h"
  #import  <QuartzCore/QuartzCore.h>

  @interface AskQuestionHome :  UIViewController<UITextViewDelegate,UITextFieldDelegate,UIImagePickerControllerDelegate,UIActionSheetDelegate>

  {

  }
  @property (strong, nonatomic) IBOutlet UIImageView *imgSecondImg;

  @property (strong, nonatomic) IBOutlet UIImageView *imgFirstImg;

  @property (strong, nonatomic) IBOutlet UITextView *txtviewAsk;

  -(IBAction)postbutton:(id)sender;

  @property (nonatomic,retain) NSString *datestr;

  @property(nonatomic,retain) NSData *imageData;

  @property(nonatomic,retain) NSString *postLength;

  @end
Run Code Online (Sandbox Code Playgroud)

.m部分

 -(void)post
 {
     NSMutableURLRequest *mutableurlrequest = [[NSMutableURLRequest alloc]initWithURL:[NSURL URLWithString:@"http://www.alvinchuastudios.com/aNSWERED/insert_question.php"]];

  // create the Method  "POST" For POSTING the QUESTIION with IMAGES
        [mutableurlrequest setHTTPMethod:@"POST"];

        NSLog(@"the email is:%@",manage.transformEmail);
        NSLog(@"the cat …
Run Code Online (Sandbox Code Playgroud)

iphone uiimageview nsdata ios

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

在swift中读取blob数据额外参数字节

我试图从sqlite读取blob数据,但我收到Extra argument 'bytes' in call错误.

这是我的代码:

var len = sqlite3_column_bytes(compiledStatement, 0)
var point = sqlite3_column_blob(compiledStatement, 0)
var dbData:NSData? = NSData(bytes: point, length: len)// ERROR: Extra argument 'bytes' in call

if dbData != nil
{
   arrDataRow.addObject(dbData!)
}
Run Code Online (Sandbox Code Playgroud)

sqlite blob nsdata swift

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