相关疑难解决方法(0)

将NSData序列化为十六进制字符串的最佳方法

我正在寻找一种很好的可可方式将NSData对象序列化为十六进制字符串.我们的想法是将用于通知的deviceToken序列化,然后再将其发送到我的服务器.

我有以下实现,但我认为必须有一些更短更好的方法来实现它.

+ (NSString*) serializeDeviceToken:(NSData*) deviceToken
{
    NSMutableString *str = [NSMutableString stringWithCapacity:64];
    int length = [deviceToken length];
    char *bytes = malloc(sizeof(char) * length);

    [deviceToken getBytes:bytes length:length];

    for (int i = 0; i < length; i++)
    {
        [str appendFormat:@"%02.2hhX", bytes[i]];
    }
    free(bytes);

    return str;
}
Run Code Online (Sandbox Code Playgroud)

iphone notifications nsdata

99
推荐指数
6
解决办法
5万
查看次数

如何将NSData转换为NSString十六进制字符串?

当我调用-description一个NSData对象时,我看到一个NSData对象字节的十六进制字符串,如:

<f6e7cd28 0fc5b5d4 88f8394b af216506 bc1bba86 4d5b483d>
Run Code Online (Sandbox Code Playgroud)

我希望将数据的这种表示(减去lt/gt引号)放入内存中,NSString这样我就可以使用它.我不想调用-[NSData description]然后只修剪lt/gt引号(因为我认为这不是NSData公共界面的保证方面,并且将来会发生变化.

NSData对象表示为NSString对象(除了调用之外-description)的最简单方法是什么?

macos cocoa

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

十六进制到十进制 - 斯威夫特

对不起,如果这看起来很简单,我就是无法在网上找到它.

我有一个十六进制的UInt8,我需要得到一个十进制.我如何在swift中实现这一目标?

例如:

"FF"

谢谢

hex swift

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

如何快速进行HMAC-SHA1

我基本上是在尝试使用String并在php中执行以下操作:

    $signature= base64_encode(hash_hmac('sha1', $data, $secretKey, true));
Run Code Online (Sandbox Code Playgroud)

但是,在Swift中进行操作 ...我看到很多关于其他人试图使用CommonCrypto进行操作的帖子,但是该模块似乎没有安装。

所以确实有3个问题:

  1. CommonCrypto是执行此操作的正确方法吗?
  2. 如果是这样,如何添加框架?
  3. 如果不是CommonCrypto最好的方法,那是什么?

我当前的代码如下所示:

    var authString:String = "PUT\nTEST=BLAH\nTEST2=BLAHBLAHBLAH"
    let hmacResult:String = authString.sha1()

    ...

    extension String {
        func sha1() -> String {
          //Do Something...
        }
    }
Run Code Online (Sandbox Code Playgroud)

swift

5
推荐指数
1
解决办法
1293
查看次数

标签 统计

swift ×2

cocoa ×1

hex ×1

iphone ×1

macos ×1

notifications ×1

nsdata ×1