
这是我一个同事写的,超喜欢使用这个方式来定义全局属性,反正我是感到无语。 因为他是项目老人,也没人去说这种事情到底是不是应该这样做,没一点规范,醉了。
1 lltctt 2017-02-08 11:00:00 +08:00 图呢... |
3 BoBoy OP #import "KBScanMaskView.h" #import <Masonry.h> @interface KBScanMaskView () { CAShapeLayer *_shapeLayer; CGRect _cutoutRect; UIView *_leftTopCorner_hor_view; UIView *_leftTopCorner_ver_view; UIView *_rightTopCorner_hor_view; UIView *_rightTopCorner_ver_view; UIView *_leftBottomCorner_hor_view; UIView *_leftBottomCorner_ver_view; UIView *_rightBottomCorner_hor_view; UIView *_rightBottomCorner_ver_view; NSMutableArray *_stripes; UILabel *_promptLabel; UIView *_redLine; NSTimer *_timer; } @end |
4 kera0a 2017-02-08 11:08:38 +08:00 看变量的类型和作用~ 没感觉有啥问题~ |
6 a412739861 2017-02-08 11:18:02 +08:00 以前的代码应该都是这么写的。不过这么写有一个问题 |
7 coldmn3 iVar 没有什么问题啊,也许只是看着不够"Modern"吧 |
8 a412739861 2017-02-08 11:18:53 +08:00 @a412739861 #6 怎么就发出去了………… 需要写 weak 的时候,感觉特别嗦,尤其是要调用多个实例变量的时候。 |
9 Creolophus 2017-02-08 11:24:18 +08:00 这样写如果需要调用这些变量的 set 和 get 方法就很麻烦了吧...... |
10 lltctt 2017-02-08 11:42:13 +08:00 我是来吐槽命名的... |
11 SeanChense 2017-02-08 11:46:38 +08:00 所以楼主认为这样有什么错呢?至少这得说清楚吧。 |
12 junyixin 2017-02-08 11:50:16 +08:00 #10 +1 |
13 kera0a 2017-02-08 11:51:50 +08:00 |
14 hohoho 2017-02-08 11:55:37 +08:00 如果项目强制这种格式那就服从或者说服领导从现在开始用 property 代替吧,如果不强制你可以自己用 property 格式去写。 毕竟这个也不算错,就如楼上说的不够 modern ,有得人确实比较怀旧而不愿改变,而且有得人会认为用 property 会发送 get/set message 影响性能。强制改变别人的习惯挺难的。 |
15 SeanChense 2017-02-08 11:58:14 +08:00 @kera0a “不需要属性修饰符”不准确,默认是被 `__strong` 修饰。 |
16 loveuqian 2017-02-08 12:00:38 +08:00 直接调用 _ 变量和调用 set/get 已经没有明显性能差距了吧 就算你用 property 来写,一样可以使用 _ 来调变量啊 只能说这种写法,我接盘的这个 14 年的项目,也有。。。 // // ***AppDelegate.m // // Created by *** on 3/16/14. // Copyright (c) 2014 ***. All rights reserved. // |
17 shawngao 2017-02-08 12:12:26 +08:00 我是来猜功能的,二维码扫描? |
18 DSKcpp 2017-02-08 12:35:22 +08:00 对于暴露在外的我一律用 property ,私有的看情况是否需要 property ,反正我是这样写的,我看很对著名开源库都用了这种方法 |
19 xi_lin 2017-02-08 12:44:38 +08:00 老写法是这样的 |
20 xuyuheng0905 2017-02-08 12:45:13 +08:00 内部属性我个人也是倾向于这种做法,除非有特殊需要,如支持 copy 等,对外属性一律 property 。 |
21 xuyuheng0905 2017-02-08 12:46:21 +08:00 目前组内项目我也是建议这样写。 |
22 jayzjj000 2017-02-08 12:47:31 +08:00 div class="reply_content">前两个变量和最后三个变量是后来加的把。。。 |
23 nicevar 2017-02-08 13:18:14 +08:00 这就是原本规范的写法,这个锅不要丢给你同事,丢给苹果最合适,你去翻翻早期的源码就知道了 |
24 nicevar 2017-02-08 13:19:45 +08:00 12 年之前的项目都这样写,你去翻翻 bat 早期的 sdk 也能看到 |
25 zyqhi 2017-02-08 13:48:49 +08:00 命名有点恶心 |
26 Heavytiger 2017-02-08 14:07:31 +08:00 反正我看不惯。 |
27 hekunhotmail 2017-02-08 15:16:08 +08:00 没毛病, 你要适当引导他,要有方法,合作最重要的是沟通,然后达成共识,在沟通,在达成共识 |
28 vincentxue 2017-02-08 15:50:31 +08:00 以前老项目还是实例变量更多一点,向外传值才在 .h 里写 property 的。不过变量命名一直都是驼峰,这个不合规范。 全部采用 property 好像是 13 、 14 年才开始普及的,这项目老的话也没啥问题。 property 对于实例变量是有多一点点损耗的,看取决了,也并不是一定全部要用 property ,你看 FB 开源的那些项目,依然很多用实例变量。 |
29 LINAICAI 2017-02-08 15:55:23 +08:00 via iPhone 这是个二维码扫描功能..! |
30 ostholz 2017-02-08 16:43:21 +08:00 纯个人习惯问题, 对于不想暴露给外部的变量, 我都是喜欢用 iVar 定义. |
31 SorcererW 2017-02-08 17:41:29 +08:00 如果以后要把其中一些变为公有,或者要写 setter/getter ,那么就还得改成 property 了。 |
32 DingSoung 2017-02-08 17:48:33 +08:00 看见这样的代码 简直要吐, 还有,不喜欢用第三方库布局 |
33 game3108 2017-02-08 18:20:08 +08:00 要看是内部使用还是外部使用。如果都是内部使用的话,这样未尝不可,好处是不需要去思考 getter 和 setter 方法,清晰明了,坏处是无法用 kvo 。不过你内部变量在内部 kvo 这种设计思路本来就有问题。 |
34 whitenight 2017-02-08 18:20:25 +08:00 要看写在哪里,在 H 文件里不支持这种写法,在 M 文件里支持这样写 |
35 acumen 2017-02-08 20:51:15 +08:00 在我司的项目里有些页面也有这样的写法, 也不是不可取吧,至少也是一目了然是私有变量。公司的项目迭代,主导项目的人变了,对项目的代码规范都会有影响吧。每个时期的规范不同,也不能怪谁咯。 |
36 vxees 2017-02-09 07:58:02 +08:00 via iPhone 老写法了。不过还是推荐 proproperty 。不过看见这种命名就蛋疼。 |
37 xiubin 2017-02-09 09:28:34 +08:00 说不得是方便子类继承的私有变量了。。。 233333~ |
38 guomiaoyou7784 2017-02-09 10:17:48 +08:00 写法没有问题的,不使用 Property 自动生成 getter 和 setter 这个看个人喜好。部分命名应该要驼峰的 |