相关疑难解决方法(0)

如何在同一框架内访问Objective-C中的内部Swift类?

致力于混合框架.在Obj-C文件中导入,但内部类不可见,只有公共类.

文档清楚地说明Swift和Obj-C之间应该有内部分支:

将Swift导入Objective-C
要在与Objective-C代码相同的框架目标中导入一组Swift文件,您不需要将任何内容导入到框架的伞形头中.相反,将您的Swift代码的Xcode生成的头文件导入到您想要使用Swift代码的任何Objective-C .m文件中.因为框架目标的生成标头是框架公共接口的一部分,所以只有标记为public修饰符的声明才会出现在框架目标的生成标头中.您仍然可以在框架的Objective-C部分中使用使用内部修饰符标记的Swift方法和属性,只要它们在从Objective-C类继承的类中声明即可.有关访问级别修饰符的更多信息,请参阅 Swift编程语言(Swift 2)访问控制.

代码示例(使用框架创建新项目)

// SwiftObject.swift

public class SwiftObject: NSObject {
    public class func doSomething() {}
}

internal class YetAnotherSwiftObject: NSObject {
    internal class func doSomething() {}
}
Run Code Online (Sandbox Code Playgroud)
// SomeObject.m file

@implementation SomeObject

- (void)someMethod {
    [SwiftObject doSomething];
}

- (void)someOtherMethod {
    [YetAnotherSwiftObject doSomething]; // Use of undeclared identifier
}

@end
Run Code Online (Sandbox Code Playgroud)

frameworks access-modifiers objective-c ios swift

12
推荐指数
2
解决办法
3929
查看次数

标签 统计

access-modifiers ×1

frameworks ×1

ios ×1

objective-c ×1

swift ×1