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