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

都觉得 swift 好?!我只想问一个问题,private method implemention

  •  
  •   thuai ·
    thuai · 2014-06-06 11:20:16 +08:00 · 5485 次点击
    这是一个创建于 3827 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果是c/c++, oc,都有.h .m文件区分。不能够公开的代码可以写到.m中打成lib.
    如果是swift, 声明和实现是写在一起的。如果做到这种c/c++,oc很方便实现的问题?
    请大神赐教!
    14 条回复    2014-06-07 22:06:04 +08:00
    damngood
        2
    damngood  
       2014-06-06 11:48:00 +08:00
    还没开始研究 Swift, 如果没有正规的途径的话那应该也可以像 JS 那样通过闭包这种类似 hack 的方式来做吧。
    dorentus
        3
    dorentus  
       2014-06-06 12:00:14 +08:00
    Objetive-C 类的所有方法本来就都是可见并可以被自由调用的,不限 .h 里面公开的部分

    苹果是这么隐藏的: https://github.com/JaviSoto/iOS7-Runtime-Headers/commit/6ccf9c4526992fec0dc414d48e4a3f7446e9822f#L10R61
    thuai
        4
    thuai  
    OP
       2014-06-06 13:02:36 +08:00   ❤️ 1
    @dorentus 都是header啊。没有实现啊。所以声明和实现分开。能够很好的隐藏啊。你给的资料并没有佐证你的观点啊。求指正。非常感谢!
    anubiskong
        5
    anubiskong  
       2014-06-06 13:05:41 +08:00
    头文件太反人类了
    dorentus
        6
    dorentus  
       2014-06-06 13:10:51 +08:00
    那你这个就不是 private method implementation 的问题了..

    http://stackoverflow.com/a/24071638/90172 的说法,Xcode 应该是可以把 swift 项目导出成静态库供其它 swift 或者 obj-c 项目调用的,具体的情形因为 Xcode6-Beta 还受 NDA 限制,我也不太清楚。
    bolasblack
        7
    bolasblack  
       2014-06-06 17:01:04 +08:00
    反正我是开源的脑残粉,所以没有你说的那个东西我是一万个支持的
    thuai
        8
    thuai  
    OP
       2014-06-06 17:04:47 +08:00
    @dorentus 如果能够导成静态库的话,也到没有什么关系。

    @anubiskong 哈哈。
    @bolasblack 开源也是不错的。
    66450146
        9
    66450146  
       2014-06-06 17:05:27 +08:00
    extend 出 private 的部分就好了
    mengzhuo
        10
    mengzhuo  
       2014-06-06 17:29:33 +08:00
    Python党表示啥是私有属性?
    kqz901002
        11
    kqz901002  
       2014-06-06 17:41:06 +08:00
    @mengzhuo def _private(self):
    mengzhuo
        12
    mengzhuo  
       2014-06-06 17:45:20 +08:00
    @kqz901002

    照样可以foo._private读出来
    wezzard
        13
    wezzard  
       2014-06-07 15:36:13 +08:00
    蘋果已經說了會考慮提供swift的method access mechanism
    limon
        14
    limon  
       2014-06-07 22:06:04 +08:00
    貌似GO也没有头文件,也没有private,这都不是个事儿。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1627 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:50 · PVG 00:50 · LAX 08:50 · JFK 11:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.