Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何将swift文件导入objective-c类,以便进行类委派?_Ios_Objective C_Swift_Objective C Swift Bridge - Fatal编程技术网

Ios 如何将swift文件导入objective-c类,以便进行类委派?

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文件后,错误更改为转发声明 有什么建议我该怎么做才能满足这种需要 此外,导入在我的情况下不起作用,请参阅附件中的图片 以前并没有遇到过您的问题,但我可以建议您只重写这段代码,而不要使用类的东西。您可以使用

我正在用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头文件。谢谢你的帮助,问题是由于本地化的产品名称。谢谢你的帮助,问题是由于本地化的产品名称。