Masonry 中 MASViewConstraint 的 copy 实现问题

2017-02-21 15:31:28 +08:00
 xi_lin

具体实现见 https://github.com/SnapKit/Masonry/blob/master/Masonry/MASViewConstraint.m#L68

我想问一下为啥这个 copy 的实现中忽略了好几个属性值?比如secondViewAttribute

2911 次点击
所在节点    iDev
6 条回复
game3108
2017-02-21 19:07:38 +08:00
因为你要看他使用的地方。他唯一使用的地方是#171 函数里面的- (MASConstraint * (^)(id, NSLayoutRelation))equalToWithRelation 循环遍历内容,这个时候对于 MASViewConstraint 对象它并没有 secondViewAttribute 。
xi_lin
2017-02-22 12:51:53 +08:00
@game3108 但是这样用起来有点危险,我不看代码直接用 copy 就丢失信息了
game3108
2017-02-22 15:04:10 +08:00
@xi_lin 。。。你是改它源代码了?。。。
xi_lin
2017-02-23 12:27:03 +08:00
@game3108 没有啊,我只是之前用的时候声明成 copy 出坑了

```
@property (nonatomic, copy) MASConstraint *constraint;
```
panzhougeek
2017-03-06 17:40:30 +08:00
copy? 为啥要声明成 copy 一般除了字符串 Block 之类的 其他的都不会用 copy
xi_lin
2017-03-07 14:41:22 +08:00
@panzhougeek 我这应用场景里是没啥必要用 copy 。不过总有要用的时候,比如 Masonry 自己内部使用的那个例子。虽然目前用不上一些特定属性,但要用到的时候意识不动 copy 实现里丢属性值也是很蛋疼的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/342070

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX