gpt4 book ai didi

objective-c - 在 Objective-C 中使用 Swift 对象类

转载 作者:行者123 更新时间:2023-11-28 12:04:23 25 4
gpt4 key购买 nike

您好,我一直在研究与此相关的不同问题,但似乎没有一个解决方案适合我。我有一个我试图在 Objective-C 中使用的对象,但是在尝试初始化该对象时,我一直收到“对象无可见接口(interface)”。我已经正确地将我的模块导入到 Objective-C 文件中并添加了 @objc 注释我是否遗漏了什么?提前谢谢你!

代码:

swift -

import UIKIT

@objc class SaveFile: NSOBject {
var name: String?
var location: String?

//@objc(initId:andSize:) does not work
init(id: String, size: String) {
super.init()
//other code
}

}

Objective-C -

    import "testProject-Swift.h"

// functions and initializers

-(void) saveFile {
SaveFile *fileToSave = [[SaveFile alloc] initWithId:self.currentId size:self.size] //No visible @interface for 'SaveFile' declares the selector 'initWithId:Size:'

}

最佳答案

试试这个:

@objcMembers
class SaveFile: NSObject {//<-NSObject, not NSOBject
var name: String?
var location: String?

init(id: String, size: String) {
super.init()
//other code
}

}

当您编写一个在 Objective-C 代码中使用的类时,使用 @objcMembers 进行注释是一种简单的方法。

否则,您可以使用 @objc 注释所有属性和方法,包括初始化器:

class SaveFile: NSObject {
@objc var name: String?
@objc var location: String?

//@objc(initWithId:size:) do work
@objc init(id: String, size: String) {
super.init()
//other code
}
}

关于objective-c - 在 Objective-C 中使用 Swift 对象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49698011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com