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

Swift 中如何 import Objective-C 中带"+"的头文件(Category)?

  •  
  •   WildCat · 2014-07-27 14:03:14 +08:00 · 6346 次点击
    这是一个创建于 3778 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如oc中的 #import "UIButton+AFNetworking.h"
    在Swift里怎么写?

    import UIButton+AFNetworking
    是不行的
    6 条回复    2014-07-27 14:57:01 +08:00
    cielpy
        1
    cielpy  
       2014-07-27 14:15:39 +08:00   ❤️ 1
    在XXX-Bridging-Header.h里#import "UIButton+AFNetworking.h"就可以了。所有swift类里都可以用。 XXX是工程名。
    dorentus
        2
    dorentus  
       2014-07-27 14:35:26 +08:00   ❤️ 1
    import XXX 仅限于导入 Framework 的。
    引用工程里的 Objective-C 或者 C 的内容得采用 1 楼的方法。Bridging Header 在工程属性里面可以设置和更改。

    https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-XID_76
    WildCat
        3
    WildCat  
    OP
       2014-07-27 14:43:51 +08:00
    感谢。
    http://andelf.github.io/blog/2014/06/23/use-cocoapods-with-swift/

    用这种方式似乎不行,我找下最佳方式吧。手写XXX-Bridging-Header.h比较好么。
    WildCat
        4
    WildCat  
    OP
       2014-07-27 14:44:07 +08:00
    WildCat
        5
    WildCat  
    OP
       2014-07-27 14:52:16 +08:00   ❤️ 1
    @dorentus
    @cielpy

    囧,上文中提到的方法也是可以的,我看一个扩展的属性没代码提示就没敢写下去而已。
    Thanks
    dorentus
        6
    dorentus  
       2014-07-27 14:57:01 +08:00   ❤️ 1
    我自己写的项目里面,embedded framework 里面的 category method、C function 之类,在 import FRAMEWORK_NAME 之后倒是都立即可用了……

    不过,我那个 embedded framework 是 Swift 和 Objetive-C 混合的,要导出的 Objectice-C 和 C 头文件都在 bridging header 里面 #import 了[1]。结果 Xcode6-Beta4 更新之后,忽然就说 embedded framework 不再支持 bridging header,完全没法用了……

    [1] https://github.com/dorentus/bna-swift/blob/master/Padlock/Bridging-Header.h
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2914 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 03:37 · PVG 11:37 · LAX 19:37 · JFK 22:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.