您的位置:首页 > 其它

Xcode 使用笔记

2017-06-09 17:54 169 查看
Xcode  Object-C 使用技巧:

/// Json字符串 转换为 字典 必须是 正确的 Json字符串
-(NSDictionary *) dictionaryWithJsonString:(NSString *) jsonString
{
if(jsonString== nil )
{
NSLog(@"==>jsonString NULL");
return nil;
}

NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError *err;
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableContainers error:&err];

if(err)
{
NSLog(@"Json 解析失败!:%@",err);
//[iOSManager ResoultWeChatPayFail:@"支付失败!"];
return nil;
}

return dic;
}
//字典转JSON
-(NSString *) jsonWithDictionary:(NSDictionary *) dict
{
NSError *error;

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&error];

NSString *jsonString;

if (!jsonData) {

NSLog(@"%@",error);

}else{

jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];

}

NSMutableString *mutStr = [NSMutableString stringWithString:jsonString];

NSRange range = {0,jsonString.length};

//去掉字符串中的空格

[mutStr replaceOccurrencesOfString:@" " withString:@"" options:NSLiteralSearch range:range];

NSRange range2 = {0,mutStr.length};

//去掉字符串中的换行符

[mutStr replaceOccurrencesOfString:@"\n" withString:@"" options:NSLiteralSearch range:range2];

NSString *result = [[NSString alloc] initWithData:iapData encoding:NSUTF8StringEncoding];

return mutStr;
}

NSData 转换 NSDictionary 的时候为 NUL

原因在于 键值对之间是以 “;”分开的还是 “,” ,下面这个是 处理以“;”分开的情况

NSData *iapData;
NSPropertyListFormat *format;
NSDictionary *dic = [NSPropertyListSerialization propertyListWithData:iapData options:0
format:&format
error:nil ];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: