簡體   English   中英

將Swift集成到目標C框架中

[英]Integrate swift in objective c framewok

我正在啟動一個目標框架,並希望在其中集成一些快速代碼。 根據官方文件。 https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-XID_78

因為為框架目標生成的標頭是框架的公共接口的一部分,所以只有標有public修飾符的聲明才會顯示在框架目標的標頭中。 您仍然可以在框架的Objective-C部分中使用帶有內部修飾符標記的Swift方法和屬性,只要它們是在從Objective-C類繼承的類中聲明的即可。

但是,我發現不可能像下面這樣訪問swift的內部部分:

@objc內部類A:NSObject {}

引號說:“您仍然可以使用帶有內部修飾符標記的Swift 方法和屬性 ”(添加了重點)。 在您的示例中,是internal (而不是方法或屬性)。 如果將類設為public並添加內部方法,則應該可以訪問該方法。

編輯 :以下為我工作:

迅速:

@objc public class MyClass : NSObject {
    internal func bar() -> String { return "foobar" }
}

目標C:

#import "MyApplication-Swift.h"

MyClass *foo = [[MyClass alloc] init];
NSLog(@"%@", [foo bar]);

請注意,必須為生成的MyApplication-Swift.h更新代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM