这是我一个同事写的,超喜欢使用这个方式来定义全局属性,反正我是感到无语。 因为他是项目老人,也没人去说这种事情到底是不是应该这样做,没一点规范,醉了。
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 2017-02-08 11:18:52 +08:00
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 1
@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
前两个变量和最后三个变量是后来加的把。。。
|
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 这个看个人喜好。部分命名应该要驼峰的
|