Tag: 声明

断言失败 –

我正在parsing一个XML文件,并将其parsing的值放在一个表视图。表视图只有一个部分。但我得到以下exception: 2013-10-14 15:21:57.250 tableview [6068:907] *声明失败 – [UITableView _endCellAnimationsWithContext:],/ SourceCache /UIKit/UIKit-2380.17/UITableView.m:909 2013-10-14 15:22: 11.227 tableview [6068:907]由于未捕获的exception“NSInternalInconsistencyException”而终止应用程序,原因是:尝试将第0行插入第0节,但在第0节只有0行更新* *第一次抛出调用堆栈:( 0x33e752a3 0x3bcde97f 0x33e7515d 0x3474aab7 0x35cb0a9f 0x35de6b27 0x6a10f 0x69ce5 0x33dc6037 0x346dc599 0x6b54b 0x3478c0f5 0x33e4a683 0x33e49ee9 0x33e48cb7 0x33dbbebd 0x33dbbd49 0x379702eb 0x35cd1301 0x68bdd 0x68b64)libc ++ abi.dylib:terminate调用抛出exception 代码是: /** The NSOperation "ParseOperation" calls addFiles: via NSNotification, on the main thread which in […]

生产构build中的冲击会导致崩溃

我在我的项目中有几个assert(condition, "message")声明。 它们被用来检查开发过程中的不变条件。 我认为他们会被忽略在生产/发布版本(如在这个答案中所述 )。 他们不是。 相反,他们在TestFlighttesting期间导致崩溃。 当我评论断言应用程序不会崩溃。 有些东西通常会出错,但不会崩溃。 它可以是我的构build设置的东西? 我所有的归档scheme都使用发布configuration: 断言是在Cocoa Touch Framework项目中使用的,它是从自定义键盘扩展中使用的。 所有项目中的所有目标(Cocoa Touch Framework和带有键盘扩展目标的主项目)都有这些Build Settings: Enable Foundation Assertions Debug YES Release NO Disable Safety Checks NO 怎么了? 编辑: Sulthan的答案显示了如何禁用全局debugging和发布版本的断言。 那不是我所需要的。 我希望它按预期工作 – 断言应该在debugging中启用,但在发布版本中禁用。 默认情况下,它是以这种方式工作的,而且在我的主项目中也是这样工作的。 但是,对于位于从该主项目链接的Framework项目中的断言(在此问题中的详细信息)无效。 为什么? 如何解决它?

使用@property和@synthesise?

我想知道@property和@synthesise是什么意思。 目前我使用以下来声明一些东西: //Class.m #import "Class.h" CCNode *node; @implementation //init, etc.. 但是我看到其他人使用: @property (nonatomic, etc..) CCNode* node; @synthesise (nonatomic, etc..) node; //I am not too sure on how this type of declaration works, please correct me on how it's done. 他们似乎都以同样的方式工作,@property和@synthesise方式的优点是什么? 他们做不同的事情,如果是的话,是什么?