相关疑难解决方法(0)

在iOS 4中是否真的支持ARC?iOS 4.2 SDK在链接时缺少与ARC相关的符号

自从ARC首次宣布它是一个编译时的东西并且将向后兼容iOS 4以来,我已经阅读和听过.我已经使用Xcode 4.2的自动重构成功地将我的项目重构为AR​​C,并且在编译时iOS 5.0 SDK,它运行正常.但是,如果我尝试针对我的iOS 4.2 SDK进行编译,则会在链接时失败,缺少以下符号:

  • _objc_retainAutoreleaseReturnValue
  • _objc_autoreleaseReturnValue
  • _objc_storeStrong
  • _objc_retain
  • _objc_release
  • _objc_retainAutoreleasedReturnValue

我查了一下,这些符号出现在5.0但不是4.2中:

iPhoneOS5.0.sdk/usr/lib $ find . -type f|xargs nm|grep -i _objc_retain$
00005ed0 T _objc_retain
000061d0 T _objc_retain

iPhoneOS4.2.sdk/usr/lib $ find . -type f|xargs nm|grep -i _objc_retain$
[... *crickets* ...]
Run Code Online (Sandbox Code Playgroud)

这是否意味着苹果撒谎?相反,我认为我很困惑,做错了什么,但我无法弄清楚是什么.

这是Xcode 4.2(Build 4C199)的GM版本

iphone ios4 ios xcode4.2 automatic-ref-counting

32
推荐指数
2
解决办法
2万
查看次数

Xcode 4:由于iPad模拟器的dylib错误,无法使用Enable Guard Malloc

在Xcode 4.x中,我已经将我的Run方案编辑为'Enable Guard Malloc',因为我有一个我需要跟踪的非描述性malloc错误.我知道我需要在模拟器中运行才能使用此功能.但是,当我这样做时,应用程序立即冻结,Xcode向我显示一个堆栈跟踪,如下所示:

Xcode 4.x中的堆栈跟踪

我已经用Google搜索了解决方案,但到目前为止还没有任何乐趣.据我所知,我应该在我的方案中设置一个环境变量:

DYLD_INSERT_LIBRARIES  ->  /usr/lib/libgmalloc.dylib
Run Code Online (Sandbox Code Playgroud)

然而,这并没有解决问题.我也试过'lsystem'作为值,但这也没有用.

任何人都可以建议解决这个dylib问题,或者推荐一个替代'Enable Guard Malloc'来识别malloc'd堆区域被超出的位置?

UPDATE

为了澄清,这是我正在处理的错误类型:

malloc: *** error for object 0x2b4b54: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
Run Code Online (Sandbox Code Playgroud)

我已经尝试设置一个符号断点malloc_error_break,但它仍然在内存问题上"随机"断开,而不是超出分配区域.

malloc xcode dylib guard

6
推荐指数
1
解决办法
1453
查看次数

应用程序在到达main.m之前在模拟器5.0上崩溃

可能重复:
iOS应用程序在使用Xcode 4.2和iOS 5进入main()之前崩溃

我正在开发一个在模拟器4.3上工作正常的应用程序,但是当我在模拟器5.0上尝试它时,它甚至在到达main方法之前崩溃了.我没有信息,只有gdb可用,但我可以问他的少数人无处可去.

这是来自的堆栈跟踪gdb:

#0  0x00000000 in ?? ()
#1  0x95392ef3 in mig_get_reply_port ()
#2  0x9538c70c in mach_ports_lookup ()
#3  0x02845124 in _xpc_domain_init_local ()
#4  0x02842eb1 in _libxpc_initializer ()
#5  0x8fe7c15b in __dyld__ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE ()
#6  0x8fe7bcc0 in __dyld__ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE ()
#7  0x8fe79220 in __dyld__ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE ()
#8  0x8fe791b6 in __dyld__ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE ()
#9  0x8fe791b6 in __dyld__ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE ()
#10 0x8fe791b6 in __dyld__ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE ()
#11 0x8fe791b6 in __dyld__ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE ()
#12 0x8fe7a1c0 in __dyld__ZN11ImageLoader15runInitializersERKNS_11LinkContextERNS_21InitializerTimingListE ()
#13 0x8fe6e656 in __dyld__ZN4dyld24initializeMainExecutableEv () …
Run Code Online (Sandbox Code Playgroud)

xcode ios5

5
推荐指数
1
解决办法
1325
查看次数

标签 统计

xcode ×2

automatic-ref-counting ×1

dylib ×1

guard ×1

ios ×1

ios4 ×1

ios5 ×1

iphone ×1

malloc ×1

xcode4.2 ×1