0

并非总是更少的代码更好,这是我学到的最后一课

所以我想到了这个问题

在内存管理、速度等方面,有什么更好的?

UIAlertView *message = [[UIAlertView alloc]initWithTitle:@"Notification" 
                                                 message:@"My message" 
                                                delegate:self 
                                       cancelButtonTitle:@"OK"
                                       otherButtonTitles:@"Cancelar",nil];
[message show];

或者

[[[UIAlertView alloc]initWithTitle:@"Notification" 
                           message:@"My message" 
                          delegate:self 
                 cancelButtonTitle:@"OK" 
                 otherButtonTitles:@"Cancelar",nil]show];

这是一个非常短的差异(2 行对 1 行),但是当您使用更复杂的代码和函数减少更多代码时,这可能会更加复杂

提前感谢您的回答

4

3 回答 3

4

堆上分配的内存是相同的,即UIAlertView实例所需的内存。

后者会在堆栈上为您保存一个变量声明,这对于您正在工作的上下文来说绝对可以忽略不计。

不会有任何明显的速度提升,所以只要坚持良好的编码风格,做一个变量,在读回你自己的代码时省去你的头疼。

于 2013-08-08T00:26:12.007 回答
2

虽然您的第二个解决方案将占用更少的内存和时间,但通常首选代码是可读的而不是优化的。在大多数情况下,代码是由一个团队开发的,最好是每个阅读该代码的人都能快速轻松地理解它在做什么。作为一般规则,除非证明有必要,否则不要优化(例如,它会明显减慢速度或导致它使用过多的内存)。

于 2013-08-08T00:30:52.393 回答
1

速度不会有明显的变化,而且由于它们都执行相同的操作,因此也不会节省内存。

打个比方,什么不需要思考,阅读“这是一个男孩!” 还是“是个男孩!”?

无论两者之间的拼写差异如何,您处理信息所需的时间大致相同,而且时间几乎为零。

回答您的问题(或我认为是您的问题)。两者在内存节省方面几乎没有区别,您也不会节省任何处理时间。

最好让你的代码更容易阅读。尝试阅读被破坏的代码可能会比尝试处理如此微小的差异浪费更多时间,例如您的示例。

于 2013-08-08T00:33:06.420 回答