在客观的c framewok中集成swift

时间:2015-07-11 01:01:23

标签: ios swift frameworks

我正在启动一个客观框架,并希望在其中集成一些快速代码。根据官方文件。 (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 {}

1 个答案:

答案 0 :(得分:0)

引用说“您仍然可以使用标有内部修饰符的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更新代码。