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