标签: nsdata

NSData如何实现哈希方法?

在基础框架中的内置NSData类上调用哈希时 - 用于返回哈希值的实现是什么?(CRC32,还有什么?)

foundation nsdata

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

UIImageJPEGRepresentation上的ARC错误

一直在争夺这一个.基本上,我正在将图像转换为NSData,因此我可以将其发送到服务器.我之前使用过的代码,但由于某种原因,我在此处收到ARC错误.错误落在我声明imageData变量的行上.

注意:myImage将传递给该方法.

- (void)uploadImage:(NSImage *)myImage {

     NSData *imageData = UIImageJPEGRepresentation(myImage, 1.0);

     // Do something...

}
Run Code Online (Sandbox Code Playgroud)

我收到错误和两个警告

Error: Implicit conversion of 'int' to 'NSData *' is disallowed with ARC
Warning: Implicit declaration of function 'UIImageJPEGRepresentation' is invalid in C99
Warning: Incompatible integer to pointer conversion intializing 'NSData * __strong' with an expression of type 'int'
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

objective-c nsdata

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

Game Center matchData的良好做法

我是GKTurnBasedMatch的新手,我正在试图找出在转弯期间玩家之间发送的"matchData"的良好做法.我发现的所有教程主要包括发送一串文本,我想发送更多.如果有人能给我一个更高级的教程,那就太好了.

我想做的一个例子就是战斗.这两个玩家有他们的化身,他们有不同的细节(健康,攻击,防御等),我该如何发送这些数据?我认为可能的唯一方法是将所有匹配细节(很多)编成NSDictionary并发送,以便它们可以再次放回到自定义匹配对象中.我应该实施NSCoding吗?

谢谢!

nscoding nsdata gamekit ios game-center

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

NSData可用内存

我的程序的一部分读取目录,然后计算文件夹中每个文件的哈希值.每个文件加载到内存,我不知道如何释放它.我在这里阅读了很多主题,但找不到正确的答案.有人可以帮忙吗?

#import "MD5.h"
...

NSFileManager * fileMan = [[NSFileManager alloc] init];
NSArray * files = [fileMan subpathsOfDirectoryAtPath:fullPath error:nil];

if (files) 
{
  for(int index=0;index<files.count;index++) 
  {
    NSString * file = [files objectAtIndex:index];
    NSString * fullFileName = [fullPath stringByAppendingString:file];
    if( [[file pathExtension] compare: @"JPG"] == NSOrderedSame )
    {
      NSData * nsData = [NSData dataWithContentsOfFile:fullFileName];
      if (nsData)
      {
        [names addObject:[NSString stringWithString:[nsData MD5]]];
         NSLog(@"%@", [nsData MD5]);       
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

和MD5.m

#import <CommonCrypto/CommonDigest.h>

@implementation NSData(MD5)

- (NSString*)MD5
{
    // Create byte array of unsigned chars …
Run Code Online (Sandbox Code Playgroud)

objective-c nsdata

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

将byte []转换为NSData后数据损坏

我有.Net Web服务响应包含byte []条目,以及其他字段.数据是PDF文件.

我从接收到的数据中提取字典:[NSJSONSerialization JSONObjectWithData]

此后我使用以下代码将byte []转换为NSData.然后我将结果保存到磁盘(参见最后一行).

打开生成的PDF文件时,出现以下错误:

"未找到PDF标题:'%PDF'未找到."

        NSArray *byteArray = [rootDictionary objectForKey:@"file"];

        unsigned c = byteArray.count;
        uint8_t *bytes = malloc(sizeof(*bytes) * c);

        unsigned i;
        for (i = 0; i < c; i++)
        {
            NSString *str = [byteArray objectAtIndex:i];
            int byte = [str intValue];
            bytes[i] = (uint8_t)byte;
        }

        NSData* data = [NSData dataWithBytes:(const void *)byteArray length:sizeof(unsigned char)*c];

        //Save to disk using svc class.
        NSString *localPath = [svc saveReport:data ToFile:[rootDictionary objectForKey:@"name"]];
Run Code Online (Sandbox Code Playgroud)

我也尝试将byte []转换为base64 NSString(在服务端),然后返回到我的应用程序中的NSData,其工作(大多数情况下),但我被告知它是邋code的代码.

**当同时异步提取多个PDF时,其中一些作为base64字符串收到的报告也已损坏.

PS.如果我必须提供我的svc课程的代码,请告诉我,但我不认为问题存在.

编辑: 我创建了一个新的Web服务方法,它以byte []作为输入,然后修改我的iOS应用程序将byteArray变量发送回服务,然后将其保存到文件中.生成的PDF文件是Adobe可读的有效文件.这意味着转移期间没有腐败.

谢谢!

pdf json bytearray nsdata ios

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

从nsdata objective-c iOS获取浮点值

我试图从NSData包含几个十六进制值的对象获取浮点值.例如EC 51 38 41从这4个字节值我想得到浮点值11.52.我如何在xcode中执行此操作?

我已经尝试过NSScanner(scanFloat,scanHexFloat),NSNumberformatter并且NSNumber我创建了一个字节数组并尝试过float myFloat = *(float*)&myByteArray.我在stackoverflow找到了所有这些选项.

我在Windows中使用C#进行了测试,并且没有问题:

byte[] bytes = new byte[4] { 0xEC, 0x51, 0x38, 0x41 };

float myFloat = System.BitConverter.ToSingle(bytes, 0);
Run Code Online (Sandbox Code Playgroud)

有谁知道我在xcode中如何做到这一点???

谢谢,本杰明

objective-c nsdata

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

从SQL数据库保存并加载图像

我正在尝试从我的数据库中显示图像.

这部分很好用.我将图像保存在DB中,如下所示:

UIImage *resizedImg = [Generics scaleImage:self.photo.image toResolution:self.photo.frame.size.width and:self.photo.frame.size.height];
NSData *imgData = UIImageJPEGRepresentation(resizedImg, 0.9);
NSString *stringDataImage = [NSString stringWithFormat:@"%@",imgData];
[dict setObject:stringDataImage for key@"image"];
// POST Request to save the image in DB ...
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试加载图像并将其设置为我时,UIImageView我这样做:

NSData *data = [[[MyUser sharedUser] picture] dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:NO];
self.imageView = [[UIImageView alloc] initWithImage:[UIImage imageWithData:data]];
Run Code Online (Sandbox Code Playgroud)

要么

NSData *data = [[[MyUser sharedUser] picture] dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];
self.imageView.image  = [UIImage withData:data];
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

data不等于imgData,我认为这是编码,但我可以找到好的编码.并[UIImage withData:data]返回零;

你能帮助我吗?

编辑:

转换并保存

UIImage *resizedImg = [Generics scaleImage:self.photo.image toResolution:self.photo.frame.size.width …
Run Code Online (Sandbox Code Playgroud)

uiimageview uiimage nsdata ios

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

NSData writeToFile方法返回true但文件未写入磁盘

我开发了一个OS X应用程序,有时我需要将一些图片保存到磁盘上.我有一个方法来做到这一点:

func saveImageAtPath(image: NSImage, path: String)
{
    if let data = image.TIFFRepresentation
    {
        let bitmap = NSBitmapImageRep(data: data)
        let pngImage = bitmap?.representationUsingType(NSBitmapImageFileType.NSPNGFileType, properties: [:])

        NSLog("Path : %@", path)

        if let _ = pngImage?.writeToFile(path, atomically: false)
        {
            NSLog("Everything should work...")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试保存图像时,一切似乎都有效,控制台中会显示以下文本:

路径:/Users/myusername/Documents/Pictures/Apps/testPictures/mypicture.png

一切都应该工作......

一个月前一切都很完美.这是我的conf:

OS X Yosemite 10.10.5 Xcode 7.2

如果有人有想法......那太棒了!

提前致谢.

macos nsdata writetofile swift osx-yosemite

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

如何在iOS Swift 3.1中将字符串转换为32字节数的数据

如何在iOS Swift 3中将字符串转换为数据或NSData 32字节数.
我有一个这样的键:

let keyString = "hpXa6pTJOWDAClC/J6POVTjvJpMIiPAMQiTMjBrcOGw=" 
Run Code Online (Sandbox Code Playgroud)

并测试此代码以转换为数据:

let keyData: Data = keyString.data(using: String.Encoding(rawValue: String.Encoding.utf8.rawValue))!  
let keyLength = keyData.count //44
Run Code Online (Sandbox Code Playgroud)

密钥长度为44.
我需要转换为32,因为有效的密钥字节数应该等于:16或24或32基于这种情况:

let validKeyLengths = [kCCKeySizeAES128, kCCKeySizeAES192, kCCKeySizeAES256]
Run Code Online (Sandbox Code Playgroud)

encode aes nsdata ios swift

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

如何从PHAsset获取图像URL?是否可以使用PHAsset URL保存图像以记录目录?

我用了

  `NSURL *urlA = [info valueForKey:@"PHImageFileURLKey"];`
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用URL保存图像时,URL为零.

 `NSData *pngData =[NSData dataWithContentsOfURL:urlA options:NSDataReadingMapped error:nil];`
Run Code Online (Sandbox Code Playgroud)

objective-c nsdata ipad ios phphotolibrary

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