小编Dad*_*Dad的帖子

是否可以在Xcode 5中的Instruments下运行基于XCTest的测试?

看看XCTest和Xcode 5单元测试,而不是看看如何在Xcode 5中的Instruments下运行我的单元测试......

具体来说,我想在测试期间寻找泄漏(在这种情况下不必自动化,但显然有用).

可能?

xcode-instruments xcode5 xctest

21
推荐指数
3
解决办法
1万
查看次数

如何在不创建所有符号的情况下为iOS创建静态库

之前已经提出过这个问题,但是对各种开发工具的文档进行深入研究似乎可能的,这一点并不明显.

动机:制作一个供其他iOS开发人员使用的静态库.如果导出库中的某些符号会导致问题,所以我希望将它们作为仅内部符号.使用动态库这很简单,只需使用use -exported_symbols_list libtool(ld)参数并列出您想要公开的参数. libtool文档不允许这个参数用于静态库.

Library有几个ObjectiveC .m文件,它们使用彼此的代码.只需要将组中的一个类公开给最终的.a静态库文件的用户.

尝试libtool -exported_symbols_list publicsymbols.exp但静态库libtool不支持该参数-static.

不能使符号与属性私有(如果它甚至可以工作),因为组中的其他.m文件需要它们.

看起来ld可以采取几个.o文件并将它们链接到一个新的.o文件(通过-r参数),并且它没有参数的"仅动态"免责声明-exported_symbols_list(可能只是不清楚文档......).

就像测试我用Xcode构建我的项目所以我已经制作了所有.o文件,然后尝试调用ld命令行,如下所示:

ld -r -x -all_load -static -arch armv6 -syslibroot {path} 
   -filelist /Users/Dad/ABCsdk/iphone-ABClib/build/ABCLib.build/Distribution-iphoneos/ABCLib-device.build/Objects-normal/armv6/ABCsdk.LinkFileList 
   -exported_symbols_list {exp file path} -o outputfile.o
Run Code Online (Sandbox Code Playgroud)

其中{path}类型的东西有很长的路径到那里的适当位置.

但我得到如下错误:

/ usr/bin/ld_classic:/Users/Dad/ABCsdk/iphone-ABClib/build/ABCLib.build/Distribution-iphoneos/ABCLib-device.build/Objects-normal/armv6/ABCmain.o不兼容,文件包含不受支持的类型加载命令0中的第3节(_ TEXT, _picsymbolstub4)(必须指定要使用的"-dynamic")

那里似乎有些不对劲......

谁知道一个聪明的方法来使这项工作?谢谢.

cocoa objective-c static-libraries ios

12
推荐指数
2
解决办法
6632
查看次数

为什么Apple标头没有__autoreleasing NSError**params?

Apple的方法为什么不被NSError**宣布为NSError * __autoreleasing *

过渡到ARC发行说明似乎表明,他们应该是(?).

例如,NSFileManager.h中的所有例程.但我实际上并没有看到任何 Apple标题使用过渡到ARC发行说明中所述的内容:

and the method declaration would typically be:

-(BOOL)performOperationWithError:(NSError * __autoreleasing *)error;
Run Code Online (Sandbox Code Playgroud)

可能是因为支持所有NSError * error = nil;声明所暗示的遗留代码库,strong所以如果Apple放在__autoreleasing那里它会导致__autoreleasing每次都创建一个临时局部变量?我唯一能想到的就是.

cocoa objective-c out-parameters automatic-ref-counting

3
推荐指数
1
解决办法
272
查看次数