iOS 后端怎么返回iconfont

- (void)viewDidLoad {
    [super viewDidLoad];
    
    
    self.label.font = [UIFont fontWithName:@"iconfont" size:30];
    

    self.label.text=[NSString stringWithFormat:@"\U0000e601"];//用这个也可以但是我不知道为什么可以
    //我的朋友觉得上面的可以下面的就不行,总的原因是没有正确的看待\U000E601这个字段的含义,他不是字符串的简单拼接,而是对一个整数进行了转义。
    
    NSString *str0 = @"e601";
    
    self.label.text = [NSString stringWithFormat:@"\\U0000%@",str0];
    
    //应该用下面的方式进行转化
    
    //这是服务器返回的字段
    NSString * num =@"e601";
    //unicode码 是个十进制整数,要把这个16进制字符串进行转换才行。
    unichar ch = [self stringFromHexString:num];
    
    NSString * str = [NSString stringWithCharacters:&ch length:1];
    
    self.label.text = str;
    

    
}
- (int )stringFromHexString:(NSString *)hexString { //

    hexString=[hexString lowercaseString];//转换为小写
    int  length =(int) hexString.length;
    unsigned int sum = 0;
    for (int i=length-1; i>=0; i--) {
        
        char c = (char)[hexString characterAtIndex:i];
        if (c>='0'&&c<='9') {
            
            c = c-'0';
            NSLog(@"-->");
        }
        else if(c>='a'&&c<='f')
        {
            c=c-'a'+10;
            NSLog(@"<--");
        }
        sum+=c*(int)pow(16, length-1-i);
    }
    return sum;
}

你可能感兴趣的:(iOS 后端怎么返回iconfont)