V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
xi_lin
V2EX  ›  iDev

Masonry 中 MASViewConstraint 的 copy 实现问题

  •  
  •   xi_lin · 2017-02-21 15:31:28 +08:00 · 2907 次点击
    这是一个创建于 2816 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    ```
    @property (nonatomic, copy) MASConstraint *constraint;
    ```
    panzhougeek
        5
    panzhougeek  
       2017-03-06 17:40:30 +08:00
    copy? 为啥要声明成 copy 一般除了字符串 Block 之类的 其他的都不会用 copy
    xi_lin
        6
    xi_lin  
    OP
       2017-03-07 14:41:22 +08:00
    @panzhougeek 我这应用场景里是没啥必要用 copy 。不过总有要用的时候,比如 Masonry 自己内部使用的那个例子。虽然目前用不上一些特定属性,但要用到的时候意识不动 copy 实现里丢属性值也是很蛋疼的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5443 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:52 · PVG 14:52 · LAX 22:52 · JFK 01:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.