小编Cro*_*ss_的帖子

隐藏Xcode dsymutil关于缺少架构信息的警告

我有一个iOS应用程序,它将与几个第三方预建的静态库链接.那些静态库已经剥离了调试信息,并且显然也丢失了它们的架构信息.在构建应用程序(在这种情况下是模拟器)时,我会收到很多这样的警告:

/Developer/usr/bin/dsymutil 
warning: (i386) 'libtest.a(test.o)' doesn't contain architecture information for i386.
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉dsymutil关闭这个?该应用程序编译并运行得很好,但所有这些警告都非常难看,我想摆脱它们.有什么建议 ?

iphone xcode ios

10
推荐指数
2
解决办法
3038
查看次数

为什么必须复制NSBlock以便在容器中存储?

- (void) addABlock 
{
void (^aBlock)(void) = ^() { [someObject doSomething]; };

[self.myMutableArray addObject: aBlock];  // Oops..

[self.myMutableArray addObject: [aBlock copy]];  // works fine
}
Run Code Online (Sandbox Code Playgroud)

在上面的简化示例中,如果未执行块复制,我会看到未定义的行为.此案例在Apple的ARC过渡指南中有具体列出.

我不明白的部分是为什么我必须手动调用副本.该块在堆栈上创建,因此需要执行block_copy - 这一点很清楚.NSArray不会调用copy,但应该在添加的对象上调用retain.那么为什么不[NSBlock保留]只是调用[NSBlock copy]?

http://developer.apple.com/library/mac/#releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html

http://www.galloway.me.uk/2013/05/a-look-inside-blocks-episode-3-block-copy/

block objective-c objective-c-blocks

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

标签 统计

block ×1

ios ×1

iphone ×1

objective-c ×1

objective-c-blocks ×1

xcode ×1