相关疑难解决方法(0)

将NSString转换为NSData会强制使用尾随字节吗?

这是对这个错误答案的回应:https: //stackoverflow.com/a/7894952/192819

转换NSString是这样的:

NSString *str = @"teststring";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)

强制尾随\ 0字节,表示

-[NSJSONSerialization:JSONObjectWithData:] 
Run Code Online (Sandbox Code Playgroud)

除非你删除它,否则其他人将失败.

cocoa objective-c

17
推荐指数
1
解决办法
4711
查看次数

多路连接 - 使用引脚

我想在我的应用程序中使用新的iOS 7 Multipeer Connectivity,其中一个人是主持人,任何人都可以加入主机.

我已经使用本教程和Apple Developer Reference to Multipeer Connectivity 的组合成功实现了它.

但是,我想要做的是添加额外的安全层,这样不仅每个人都可以加入应用程序.我想要它,所以当一个人请求加入主机时,他们必须输入一个随机的4位密码,主机会告诉该组,所以知道它的人可以输入并加入会话.

这可能吗?由于iOS 7是如此新颖,很难找到它的信息.

任何帮助或建议将不胜感激.干杯

bluetooth objective-c ios pin-code multipeer-connectivity

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

通过将NSString解释为十六进制数字来创建NSData

Edit1: rob mayoff'answer很精彩.这是我自己的:

    -(NSData *)change:(NSString *)hexString
    {
        int j=0;
        Byte bytes[[hexString length]];  
        for(int i=0;i<[hexString length];i++)
        {
            int int_ch;  

        unichar hex_char1 = [hexString characterAtIndex:i]; 
        int int_ch1;
        if(hex_char1 >= '0' && hex_char1 <='9')
            int_ch1 = (hex_char1-48)*16;   
        else if(hex_char1 >= 'A' && hex_char1 <='F')
            int_ch1 = (hex_char1-55)*16; 
        else 
            int_ch1 = (hex_char1-87)*16; 
        i++;

        unichar hex_char2 = [hexString characterAtIndex:i]; 
        int int_ch2;
        if(hex_char2 >= '0' && hex_char2 <='9')
            int_ch2 = (hex_char2-48); 
        else if(hex_char1 >= 'A' && hex_char1 <='F')
            int_ch2 = hex_char2-55; 
        else 
            int_ch2 = hex_char2-87; 

        int_ch …
Run Code Online (Sandbox Code Playgroud)

cocoa nsstring nsdata ios

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