ios - 'xxx' 没有可见的 @interface 声明选择器 'init:'

标签 ios objective-c swift xcode

我有一个 Objective-C 类,它尝试使用以下方法初始化 Swift 类对象:

- (id) init : (ObjCTestClass*) testclass
{
    NSLog( @"Creating" );

    self = [super init];
    if ( !self )
    {
        return nil;
    }
    self.testclass = testclass;
    self.swiftClass = [[SwiftClass alloc] init: self.testclass];
    return self;
}

这是相应的 Swift 类:

final class SwiftClass: NSObject {

    private var objcTestClass: ObjCTestClass

    init(testclass:ObjCTestClass) {
        provider = CXProvider(configuration: type(of: self).providerConfiguration)
        objcTestClass = testclass
        super.init()
    }
}

我收到以下错误:

No visible @interface for 'xxx' declares the selector 'init:'

注意: ObjCTestClass 是一个 Objective-C 类。 我有桥接 header 将 Objective-C 公开给 Swift,反之亦然。

如何解决这个问题?

最佳答案

应该是[[SwiftClass alloc] initWithTestClass: self.testclass]。如果设置正确,当您键入时应该自动完成

关于ios - 'xxx' 没有可见的 @interface 声明选择器 'init:',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41029760/

相关文章:

macos - 人工触发 Segue

ios - 无法读取数据,因为它的格式不正确 [swift 3]

ios - 单击 UICollectionView 中的自定义单元格时如何触发 segue

ios - iPhone 6S、7+、X 和 iPad Pro 的 FaceTime 摄像头的 FPS 是多少?

iphone - 这两种在Objective-C中分配内存的方式有什么区别?

iphone - 在 iPhone 应用程序中嵌入连字字体

ios - 如何使用 UILongPressGestureRecognizer 计算长按按钮的时间

swift - 如何使用由变量确定的按钮将 a 链接到第二个 View Controller ?

ios - 如何通过 itunesconnect 从 TestFlight 安装应用程序作为 ios 中的内部测试器?

IOS:AVAudioPlayer