1
Livid MOD 起步时间越早,规模越大的 codebase,在最新版本的 Xcode 中的各种 warning 就会越多⋯⋯
如果不会造成 crash 的话,还是可以安全忽略的。 |
2
Elfe OP @Livid 那对于 Analyze 报告的问题呢?
目测,大量 warning 还是无关紧要的,Analyze 上的可能有些确实是 crash 的元凶。 另:有没有 suppress 某一特定 warning 的方法?这样就可以把那些安全的确实有理的 warning 给压制了让它们别在警告栏中出现。 |
4
sharkli 2012-06-04 08:17:30 +08:00 1
崩溃的原因大多是收到内存warnning没有处理。你使用模拟器的模拟内存警告,把每个界面测试一下。收到内存警告如何处理,查下文档。个人经验仅供参考。
|
5
adow 2012-06-04 10:30:06 +08:00 1
如果清楚的知道warning 的原因有些是可以忽略,analyze里很多都是potential leak确实需要仔细分析,在内存警告的时候很有可能就爆发出来了。
|
6
shinyzhu 2012-06-04 11:07:51 +08:00
我有强迫症
写好一个代码块/功能之后会主动跑一下Analyze,有提示就解决掉。 到后来基本上没有Analyze的警告了。 |
7
leafduo 2012-06-04 14:00:13 +08:00
我是废死力也要干掉全部警告的那种。
最近一个 LaTeX 警告总搞不定让我很抑郁 = = |
8
xuming 2012-06-04 14:04:36 +08:00 1
自己写的代码里的warning和error肯定要清除的,第三方的代码,就看情况了,一般warning问题不大的。
|
9
Elfe OP @adow iOS 代码里如何忽略某一具体警告?我是指忽略某一特定规则针对某一行/段特定代码的警告。同样这条规则在其它代码中的不要 suppress,同一段代码中其它规则检查的警告也不要 suppress。
|
10
adow 2012-06-05 11:21:53 +08:00
@Elfe 我不知道是否有特定规则,比如在我的一个不大的项目里,有两处warning,有一处是因为我调用了UITextView的一个非公开的styleString方法,编译的时候提示'UITextView' may not respond to 'styleString',我想是因为styleString非公开的所以才提示这个,但是运行的时候他起作用了,也通过了app store审核。还有一处是我在实现单实例模式时候时在release方法中写成了:
-(void)release{ return; } 他希望我先调用一下[super release],所以给我warning. 我的意思是,我知道这两处warning的原因,也知道会产生的后果,所以我可以忽略。 我的项目中还有两处analyze的警告,都是Potential leak of an object allocated,他们在我使用的第三方的MTStatusBarOverlay.m里,我不想去改他,我在instruments里运行了一段时间也没看到那个泄露,所以我也忽略了他。 |
11
Elfe OP @adow 我的意思是让可以安全忽略的警告不要在左边窗口中显示出来。
在C#中是这样的:对于可以忽略的警告,可以在方法/属性/类/全局的范围添加一句 [SuppressMessage rule="[the rule ID e.g. CA001]" justification="[the reason why choose to ignore the error here]"] 这样在编译的时候我就不会再看到这条错误。 这么做有两个好处: 1,我可以强制 treat warning as error,从而从流程提升整个团队代码的质量 2,对于那些可以安全忽视的警告,我只需要思考一次就够。不至于在今后每次编译的时候我都要检查一下是不是多了几个警告,还得仔细找出多了哪几个 |
12
adow 2012-06-05 14:29:05 +08:00
原来还可以这样,我从来没想到过
|