JSONKit 在iOS9 arm7 64位下出现的问题

最近遇到了一个关于JSONKit的问题,在项目加了arm7 64位以后,JSONKIT会出现[params JSONString] forKey:@”gson”];报错的情况,如下图

具体原因不太清楚,这是iOS9出现的新问题,好像是字典变字符串时出问题了。下面直接附上解决办法:

  1. 找到JSONKit.h文件,在JSONKit.h文件中找到 @interface NSDictionary (JSONKitSerializing),在其中添加一个XMJSONString方法,如下图
  2. 找到JSONKit.m文件,在JSONKit.m文件中实现刚才添加的方法,实现如下图

    附上实现代码:
    - (NSString *)XMJSONString{
        NSError *error = nil;
        NSData *jsonData = [NSJSONSerialization dataWithJSONObject:self
                                                           options:NSJSONWritingPrettyPrinted
                                                             error:&error];
           if ([jsonData length] && error == nil){
            NSString *jsonString = [[NSString alloc] initWithData:jsonData
                                                         encoding:NSUTF8StringEncoding];
            NSString *replaceString = [jsonString stringByReplacingOccurrencesOfString:@"\n" withString:@""];
            NSString *treplaceString = [replaceString stringByReplacingOccurrencesOfString:@"\\" withString:@""];
            return [treplaceString stringByReplacingOccurrencesOfString:@" " withString:@""];
        }else{
            return nil;
        }
    }
    

PS:如果不知道怎么去添加方法的话,可以去云盘中下载改写好的JSONKit的.h和.m文件,然后直接把这两个文件替换掉就行。这里是云盘链接: http://pan.baidu.com/s/1gd59ed9 密码: s5eh
注意,文件替换之后,JSONKit可能会出现19个关于ARC的错误,在项目里找到TARGETS-Build Phases,加上如下图的设置即可

最后,不要忘记在这里使用的方法改为你刚才添加的方法(- (NSString *)XMJSONString)哦。格式为:

[request addPostValue:[params XMJSONString]];
if (type.length != 0) {

}

时间: 2024-08-05 10:45:38

JSONKit 在iOS9 arm7 64位下出现的问题的相关文章

适配IOS9.0的那些坑!(主要说明ios9.0,64位设备,打开应用闪退的问题)

我平时的主要工作是维护公司的sdk,最近为了适配ios9.0可谓伤透了心.下面给大家分享下我这几天适配ios9.0遇到的一些问题和解决方法 希望能够帮助到大家,如果有错误的地方,还请大家能够多多指教. 首先,遇到比较多的问题,ChenYilong已经在cocoachina中讲得非常详细了,链接: http://www.cocoachina.com/ios/20150703/12392.html 非常感谢他,让我少走了很多弯路. 其次,是我遇到的两个问题,在网上没有找到相应的解释: 一.一些应用在

window 7 64位下可运行的递归删除注册表程序

为了完成一个简单的注册表删除程序,由于我本身是win7 64位的OS,写了以下代码来递归删除注册表键值,程序代码如下: #include <tchar.h> #include <afx.h> #define KEY_WOW64_64KEY 256 long DeleteSubKeyTree(HKEY hKey, LPCTSTR lpSubKey) { LONG lResult; HKEY hSubKey; DWORD dwIndex, cbName; char szSubKey[5

ubuntu 64位下安装wps

首先,去官网下载wps.地址:http://community.wps.cn/download/ 然后切换到下载目录,执行如下命令: $ sudo apt-get install ia32-libs* 然后执行安装命令: $ sudo dpkg -i --force-architecture wps-office_8.1.0.3724~b1p2_i386.deb 会报如下错误: Selecting previously unselected package wps-office. (Readin

windows7旗舰版64位下安装、破解及运行QTP11报错

说明:如果你出现了以下几种情况,希望能解决你的问题:如果没有,就当路过. 1.安装qtp11时报vc++ 2005缺少,但怎么也不能成功安装 解决方法: 1.找到qtp安装包里面的vc++ 2005组件 QuickTest\CHS\prerequisites\vc2005_sp1_redist. 2.运行vcredist_x86.exe文件,如果安装失败,修改后缀名为压缩文件,如:zip.rar,解压文件后重新运行解压后的文件. 2.网上介绍用mgn-mqt82.exe的方法破解qtp11失败

关于VS2010帮助文档的使用和VC6.0在Win7 64位下的使用

由于购置了新的电脑,安装的是Win7 64位的操作系统,这两天我在重新安装编程环境的时候遇到一些问题,现在都解决掉了,分享出来以供需要的人参考. 一.以前使用的是VS2008,从VC6到2008这么多年了一只使用的MSDN是带索引的本地帮助,到了现在使用VS2010了,发现VS2010采用的是Web版形式的帮助. 并且也没有了索引.书签等非常的不习惯. 后来找到一个名字为:"h3viewer"的工具,在前提:已经安装了VS2010帮助文档的情况下.安装h3viewer,运行后界面如下:

64位下pwntools中dynELF函数的使用

这几天有同学问我在64位下怎么用这个函数,于是针对同一道题写了个利用dynELF的方法 编译好的程序 http://pan.baidu.com/s/1jImF95O 源码在后面 from pwn import * elf = ELF('./pwn_final') got_write = elf.got['write'] print 'got_write= ' + hex(got_write) call_get_name_func = 0x400966 print 'call_get_name_f

centOS 64位下编译hadoop2.4.1

1. 安装JDK a.      解压jdk [[email protected] software]$ tar -xvzf jdk-7u60-linux-x64.tar.gz b.      设置环境变量 PATH=$PATH:$HOME/bin export JAVA_HOME=/home/bigdata001/BigDataPlatform/jdk1.7.0_60 export JAVA_BIN=$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/li

win7 64位下如何安装配置mysql-5.7.4-m14-winx64

win7 64位下如何安装配置mysql-5.7.4-m14-winx641. mysql-5.7.4-m14-winx64.zip下载 官方网站下载地址:http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.17-winx64.zip 2.解压到D:\mysql.(路径自己指定)3.在D:\mysql\mysql-5.7.4-m14-winx64下新建my.ini配置文件 内容如下: ####################配置文件开始#

@清晰掉 各种类型32位与64位下各类型长度对比

64 位的优点:64 位的应用程序可以直接访问 4EB 的内存和文件大小最大达到4 EB(2 的 63 次幂):可以访问大型数据库.本文介绍的是64位下C语言开发程序注意事项. 1. 32 位和 64 位C数据类型 32和64位C语言内置数据类型,如下表所示: 上表中第一行的大写字母和数字含义如下所示:I表示:int类型L表示:long类型P表示:pointer指针类型32表示:32位系统64表示64位系统如:LP64表示,在64位系统下的long类型和pointer类型长度为64位.64位Li