用于带有 ARC 的 xcode 4.6 ios 6 的 JSONKit?

Posted

技术标签:

【中文标题】用于带有 ARC 的 xcode 4.6 ios 6 的 JSONKit?【英文标题】:JSONKit for xcode 4.6 ios 6 with ARC? 【发布时间】:2013-03-07 14:52:13 【问题描述】:

好吧,我确实添加了 JSONKit 类(JSONKit.h 和 JSONKit.h),但在 .m 文件中,我有很多警告和编译错误,例如:

NSError *error;  //--> ARC forbids Objetive-C in structs or unions

or 

id key, object; whit the same error

anObject = [anObject retain]; //---> ARC forbids explicit message send 'retain''

or many error's in this part code:

static void _JKArrayInsertObjectAtIndex(JKArray *array, id newObject, NSUInteger objectIndex) 
  NSCParameterAssert((array != NULL) && (array->objects != NULL) && (array->count <= array->capacity) && (objectIndex <= array->count) && (newObject != NULL));
  if(!((array != NULL) && (array->objects != NULL) && (objectIndex <= array->count) && (newObject != NULL)))  [newObject autorelease]; return; 
  if((array->count + 1UL) >= array->capacity) 
    id *newObjects = NULL;
    if((newObjects = (id *)realloc(array->objects, sizeof(id) * (array->capacity + 16UL))) == NULL)  [NSException raise:NSMallocException format:@"Unable to resize objects array."]; 
    array->objects = newObjects;
    array->capacity += 16UL;
    memset(&array->objects[array->count], 0, sizeof(id) * (array->capacity - array->count));
  
  array->count++;
  if((objectIndex + 1UL) < array->count)  memmove(&array->objects[objectIndex + 1UL], &array->objects[objectIndex], sizeof(id) * ((array->count - 1UL) - objectIndex)); array->objects[objectIndex] = NULL; 
  array->objects[objectIndex] = newObject;

如何以最佳方式使用适用于 xcode 4.6 ios 6 的 JSONKit 和 JSON 框架?

& 非常感谢!!!来自玻利维亚的问候!!摇滚吧!!!呵呵

【问题讨论】:

【参考方案1】:

尝试使用 JSONKit 的另一个分支。通过简单的搜索,我找到了一些可以解决此问题的 fork。

也许是这个: https://github.com/Kelp404/JSONKit/network

original JSONKit 的最后一次提交到今天为止是 8 个月...很糟糕

【讨论】:

感谢文森特!!,但我也尝试过,但我仍然遇到同样的问题,我无法修复错误的 T_T',我会继续尝试并寻找解决方案再次感谢!!! XD o_O 奇怪,我在我的所有项目中都使用了 JSONKit,我使用 XCode 4.6 和 iOS6,并且在我的计算机上运行良好! & 你在使用自动引用计数 ARC 吗? o_O?没有问题?你会尝试使用 Edit > Refactor > Convert to Objective-C ARC 但我不知道为什么这个 sintaxis 给我一个错误:“NSError *error;” //--> ARC 禁止在结构或联合或“id key, object;”中使用 Objetive-C我不知道如何解决它T_T'' 是的,我在我的项目中使用 ARC 文森特!!!老兄!!你是对的!!,从我的项目中搜索我在 TARGETS 下添加的解决方案,然后在 BuildPhases 中双击 JSONKit.m 并添加以下标志“-fno-objc-arc”。就像在这个答案中一样 问题:link ***.com/questions/10681597/… & 完美地工作!!总之非常感谢!!!寻求帮助【参考方案2】:

对于任何感兴趣的人,我只是分叉了原始存储库并添加了看起来适用于 iOS6 的修复程序(和一个 Podspec 文件)。 https://github.com/JoistApp/JSONKit

【讨论】:

支持ARC吗?我们可以用于 iOS 7 吗?

以上是关于用于带有 ARC 的 xcode 4.6 ios 6 的 JSONKit?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 4.6 开发 iOS 3.1 [关闭]

由 xcode 4.6 与 xcode 5.0 创建时,iOS 应用程序在 iOS 7.0 设备上的行为不同

ios 6 ios 7 xcode 4.6 xcode5 困境

Xcode 4.6 中 iOS7 的状态栏

针对 XCode 4.6 下的 iOS 4.x 设备

如何为 iOS 6 xcode 4.6 制作任何时间动画?