标签: nsdata

Objective-c - NSData initWithContentsOfFile 与 dataWithContentsOfFile

这两个 Objective-C 语句有什么区别?

NSData *documentBytes = [NSData dataWithContentsOfFile:filePath];
Run Code Online (Sandbox Code Playgroud)

与此相比:

NSData *documentBytes = [NSData initWithContentsOfFile:filePath];
Run Code Online (Sandbox Code Playgroud)

在 Apple 的 NSData 类参考页面中,它对每个类进行了以下说明

dataWithContentsOfFile - 通过读取给定路径指定的文件中的每个字节来创建并返回数据对象。

initWithContentsOfFile - 返回一个数据对象,该数据对象通过从给定路径指定的文件中读入数据来初始化。

对我来说,这些看起来功能相同,但我非常怀疑它们在所有情况下都做同样的事情,对吗?

预先感谢...-埃尔金

objective-c nsdata

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

如何获取 UIImage 的大小(以 KB 为单位)?

有没有办法从 UIImage 获取以 KB 为单位的文件大小,而不从 didFinishPickingMediaWithInfo 获取该图像?所呈现的图像来自相册。

我尝试了以下代码,但这给出了以下结果:图像大小(KB):0.000000

- (void)setImage:(UIImage *)image
{
    _image = image;
    self.imageView.image = image;
}

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self setupView];

        self.backgroundColor = [UIColor whiteColor];

        panGestureRecognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(beingDragged:)];
        [self addGestureRecognizer:panGestureRecognizer];

        // prepare image view
        self.imageView = [[UIImageView alloc]initWithFrame:self.bounds];
        self.imageView.clipsToBounds = YES;
        self.imageView.contentMode = UIViewContentModeScaleAspectFill;
        [self addSubview:self.imageView];



        NSData *imgData = [[NSData alloc] initWithData:UIImageJPEGRepresentation((_image), 0.5)];
        int imageSize = imgData.length;
        NSLog(@"size of image in KB: %f ", imageSize/1024.0);

        overlayView = …
Run Code Online (Sandbox Code Playgroud)

xcode objective-c uiimage nsdata ios

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

使用 Realm 保存数据数组或自定义类

我有一个包含大量信息的自定义类。这是一个位置跟踪应用程序,所以我稍后需要位置(基本上只有 x、y、z,但为了方便我使用 CLLocations)。现在我有一个自定义类,其中包含有关每个跟踪的所有信息,例如记录/保存文件)。我使用 Realm 来保存它,Realm 可以很好地处理我的双打和字符串,但是我在处理数据数组时遇到了麻烦。

我能找到的最方便的解决方案是将数据转换为 NSData。在谷歌的帮助下,我找到了两种编码和解码的方法。但我没有这方面的经验,所以我不确定它是否有效。而且我不认为它有效。

我可以很好地加载双打和字符串,但我的 NSData 似乎是空的。我试图将我的类编码为 NSData 并将其保存在 Realm 中,但这似乎不起作用,因此我的理论是编码/解码功能无法正常工作。

TL;DR 我有我的自定义类(数据记录),我想用 Realm 保存。我如何解决这个问题?

我的课:

class DataRecord {
    var startLocation : CLLocation = CLLocation.init()
    var endLocation : CLLocation = CLLocation.init()
    var duration : Double = 0.0
    var distance: Double = 0.0

   var avgSpeed : Double = 0.0
   var topSpeed : Double = 0.0

   var locations : [CLLocation] = []
   var altitudes : [Double] = []
   var angles : [Double] = []
   var speeds : [Double] …
Run Code Online (Sandbox Code Playgroud)

realm nsdata ios swift

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

iPhone NSURLConnection:如何处理返回的NSData对象?Google Docs API

我在iPhone应用程序中使用Google Docs API.我发送了正确的POST请求,并收到了一些响应以及一些NSData.如果我NSLog NSData对象,我得到这个:

NSData *returnedData = [NSURLConnection sendSynchronousRequest:request returningResponse:theResponse error:NULL];
NSLog(@"%@",returnedData);
//output : <4572726f 723d4261 64417574 68656e74 69636174 696f6e0a>
Run Code Online (Sandbox Code Playgroud)

我认为NSData是NSDictionary或NSArray.我应该收到几件物品,一个SID,一个LSID和一个Auth.

如果我可以将NSData块转换为NSDictionary,我可以找到任何键的对象.

有人可以帮忙吗?

iphone objective-c nsurlconnection nsdata

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

泄漏或崩溃 - 自动释放和释放之间的差异

我有一个理解问题.给出了这种方法:

- (NSArray*)test {
 NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://stackoverflow.com/"]];
 NSString *result = [[NSString alloc] initWithBytes:[data bytes] 
            length:[data length] 
             encoding:NSMacOSRomanStringEncoding];
 result = [result stringByAppendingString:@"something"];
 NSArray *arr = [NSArray arrayWithObject:result];
 //[result release];
 return arr;
}
Run Code Online (Sandbox Code Playgroud)

如果我取消注释,releaseApp会崩溃并说它无法访问已发布的对象.
release通过result字符串仪器会报告泄漏(NSPlaceholderString).

我可以autorelease在同一条线上alloc,它可以解决问题(我正在我的应用程序中进行).

如果我理解正确stringByAppendingString:应该创建一个自动释放的对象,以便可以释放"旧"结果.然后该方法arrayWithObject:应该copy将对象放入数组中.所以我的想法是在将字符串复制到数组后释放它.

我错过了我的知识吗?

release objective-c autorelease nsstring nsdata

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

重新启动应用后重新显示已删除的NSData

在我的应用程序中,我在设置菜单中有一个"全部删除"按钮,删除所有存储的用户数据.使用以下代码:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];

NSError *error;
NSArray *items = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
[fetchRequest release];

for (NSManagedObject *managedObject in items) {
    [managedObjectContext deleteObject:managedObject];
}
Run Code Online (Sandbox Code Playgroud)

这似乎运作良好,所有数据似乎从应用程序中消失.也就是说,直到应用程序关闭并重新启动...

从背景状态打开应用程序不会执行此操作,但是当应用程序通过多任务切换器强制退出时,重新启动应用程序时会重新显示所有"已删除"数据.

-

删除后,所有数据实际上似乎都消失了,搜索任何数据等都不会返回任何结果.我在删除数据的方式上做错了什么?任何帮助深表感谢!

iphone objective-c nsdata

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

如何使用zlib gzip NSData?

  1. 我想使用zlib,因为我认为它是gzip的最佳和最快的方式NSData.但是,有更好的方法吗?

  2. 如果没有,我应该在Xcode中链接哪个版本的zlib库:libz.dylib,libz.1.dylib,libz.1.1.3.dylib或libz.1.2.5.dylib?

  3. 请提供一个代码示例,说明如何将zlib转换NSData *normalHTTPBodyNSData gzippedHTTPBody

gzip zlib objective-c nsstring nsdata

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

在iPhone中将NSData从音乐文件中删除

我从iPhone设备上检索了所有音乐和视频.我现在被困在保存到我的应用程序中,我无法从文件中获取原始数据.任何人都可以帮我找到解决方案.这是我用来获取音乐文件的代码.

MPMediaQuery *deviceiPod = [[MPMediaQuery alloc] init];
NSArray *itemsFromGenericQuery = [deviceiPod items];
for (MPMediaItem *media in itemsFromGenericQuery){
 //i get the media item here.
}
Run Code Online (Sandbox Code Playgroud)

如何将其转换为NSData?这就是我试图获取数据的原因

audioURL = [media valueForProperty:MPMediaItemPropertyAssetURL];//here i get the asset url
NSData *soundData = [NSData dataWithContentsOfURL:audioURL];
Run Code Online (Sandbox Code Playgroud)

使用它对我来说毫无用处.我得到了来自的数据LocalAssestURL.任何解决方案.提前致谢

iphone assets nsdata mpmediaitem

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

如何判断NSData实际上是否是NSImage?

我通过Bonjour协议来回发送数据.所有数据包都作为NSData字符串发送并通常转换为字符串; 但是如果我需要收到图片怎么办?这是将要进行的过程.

  1. 客户要求 NSImage
  2. 服务器将请求NSImage作为NSData数据包发送
  3. 客户收到 NSData
  4. 客户端检查数据是否为图像
  5. ????
  6. 利润?

我可以尝试将数据转换为图像并捕获错误(这意味着它不是图像)吗?

cocoa objective-c nsimage nsdata

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

在Swift中生成多页PDF

UIImage想要制作一个长的多页PDF文件,每页只有一个图像.我已经把每个图像都放到了由NSData表示的PDF中,但是我很难找到关于如何将它们组合成一个长文档的任何信息.

我当前的代码如下所示:

 //Convert images to pdf
    var pdfDatas = [NSData]()
    for image in images {
        let pdfData = NSData.convertImageToPDF(image)

        pdfDatas.append(pdfData!)


    }
    //Combine PDF's to one long document here. 
Run Code Online (Sandbox Code Playgroud)

有谁知道如何实现这一目标?

pdf nsdata ios swift

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