Ios 如何将swift文件导入objective-c类,以便进行类委派?
我正在用swift开发我的应用程序,现在我的旧文件很少是用objective-c编写的。所以我为班级交流搭建了一座桥梁 我的一个委托类是用objective-c编写的,现在我想知道调用我的委托的当前类是哪个 我正在尝试使用iskindofcals,它发出一个错误,如找不到标识。导入swift文件后,错误更改为转发声明 有什么建议我该怎么做才能满足这种需要 此外,导入在我的情况下不起作用,请参阅附件中的图片Ios 如何将swift文件导入objective-c类,以便进行类委派?,ios,objective-c,swift,objective-c-swift-bridge,Ios,Objective C,Swift,Objective C Swift Bridge,我正在用swift开发我的应用程序,现在我的旧文件很少是用objective-c编写的。所以我为班级交流搭建了一座桥梁 我的一个委托类是用objective-c编写的,现在我想知道调用我的委托的当前类是哪个 我正在尝试使用iskindofcals,它发出一个错误,如找不到标识。导入swift文件后,错误更改为转发声明 有什么建议我该怎么做才能满足这种需要 此外,导入在我的情况下不起作用,请参阅附件中的图片 以前并没有遇到过您的问题,但我可以建议您只重写这段代码,而不要使用类的东西。您可以使用
以前并没有遇到过您的问题,但我可以建议您只重写这段代码,而不要使用类的东西。您可以使用一些从基类返回的枚举,然后检查它
@objc enum EnumSubstitution: Int {
// several options
}
protocol YourDelegateProtocol {
// your methods
var enumSubstitutionForIsKindOf: EnumSubstitution {get}
}
我没有检查代码,但是,假设你已经知道了
编辑:
我的意思是,您可以在代码的下一步使用EnumSubstitution,这样就不用编写代码了
if ([self.delegate isKindOfClass: [yourClass class]])
你只要使用
if (self.delegate.enumSubstitutionForIsKindOf == firstOption)
等等,以前并没有遇到过您的问题,但我可以建议您只重写这段代码,而不使用类的东西。您可以使用一些从基类返回的枚举,然后检查它
@objc enum EnumSubstitution: Int {
// several options
}
protocol YourDelegateProtocol {
// your methods
var enumSubstitutionForIsKindOf: EnumSubstitution {get}
}
我没有检查代码,但是,假设你已经知道了
编辑:
我的意思是,您可以在代码的下一步使用EnumSubstitution,这样就不用编写代码了
if ([self.delegate isKindOfClass: [yourClass class]])
你只要使用
if (self.delegate.enumSubstitutionForIsKindOf == firstOption)
依此类推从您的答案来看,您的进口声明缺少Swift中的大写字母S 试着改变
#import "HomeVC-swift.h"
到
从你的回答来看,你的进口声明缺少Swift中的大写字母S 试着改变
#import "HomeVC-swift.h"
到
我使用的是xcode 8.3,我在对象文件中使用了一些与问题相关的导入swift类。。。。但是没有人帮助过我;(isKindOfClass将可用于Swift类,当且仅当它们从NSObject继承时,默认情况下不会发生。HomeVC类是Swift类..?是的,HomeVC是Swift类,将其用作我的objc类的委托可以正常工作,但检查委托类时会出现错误。我使用的是xcode 8.3,我用了很少的代码。)所以,在对象文件中导入与问题相关的swift类……但非帮助了我;(isKindOfClass将可用于Swift类,当且仅当它们从NSObject继承时(默认情况下不会发生)。HomeVC类是Swift类..?是的,HomeVC是Swift类,将其用作我的objc类的委托可以正常工作,但在检查委托类的类型时会出现错误。我已设置协议和委托objc中的ady与swift配合良好,现在我想跟踪我当前的委托对象。我的应用程序支持多语言,只需知道它不允许我导入我的应用程序swift.h文件#导入“myapp swift.h”。可能这就是问题所在。你知道为什么它不允许。我已经创建了.pch和桥头文件。我已经在objc中设置了协议和代理,它与swift一起工作正常,现在我想跟踪哪个是我当前的代理对象。我的应用程序具有多语言支持,只是知道它不允许我导入我的应用程序-swift.h文件#导入“myapp swift.h”。可能就是这个问题。你知道为什么它不允许。我已经创建了.pch和bridge头文件。谢谢你的帮助,问题是由于本地化的产品名称。谢谢你的帮助,问题是由于本地化的产品名称。