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
jox
V2EX  ›  iDev

关于 Instance Variable

  •  
  •   jox · 2014-10-30 13:23:34 +08:00 · 2357 次点击
    这是一个创建于 3476 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近越来越不喜欢用ivar了,程序在运行过程中如果在当前作用域内找不到某个符号的定义,就会跑到上一层去找,在一个对象内部,ivar本质上是全局变量,这个事实让我对ivar的使用总是很谨慎,除非迫不得已,否则绝不会使用ivar或者定义某个属性来保存某个对象的引用,在一个对象内部已经有一个全局变量了,那就是self,能通过self取得引用的对象我一般都会在某个函数内新建一个局部变量来保存这个对象的引用,虽然会多写一些代码,但是感觉上来说会安心一些,就是想让函数只在迫不得已的时候才会使用全局变量与外部进行通信,其他情况下将函数的接口约束在参数和全局变量self上,我是这么觉得的,不知道大家怎么看?
    4 条回复    2014-10-30 22:24:50 +08:00
    Heavytiger
        1
    Heavytiger  
       2014-10-30 14:54:14 +08:00
    全用self的路过
    huoshanhui
        2
    huoshanhui  
       2014-10-30 15:19:45 +08:00
    ivar 不是有许多属性么,哪来的不安全。
    jox
        3
    jox  
    OP
       2014-10-30 15:41:48 +08:00
    @huoshanhui 不是怕不安全,算是一种个人习惯吧,如果ivar很多的话,函数就会与外界有很多“通道”,只使用self一个全局变量的话,函数就只通过self和参数与外界接受数据,这样我觉得能使函数的接口“干净”一些,一般如果要用到self的话,就会在函数的开头创建变量然后保存通过self得到的指针的值,这样一看函数名和开头的几行就知道这个函数从外界接受了什么数据,嘛,就是一种个人习惯,我觉得这样好管理
    robertlyc
        4
    robertlyc  
       2014-10-30 22:24:50 +08:00
    xcode 5之后 编译器帮你搞定
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3180 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:46 · PVG 21:46 · LAX 06:46 · JFK 09:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.