Ios 使用Swift协议时短路

Ios 使用Swift协议时短路,ios,objective-c,swift,protocols,Ios,Objective C,Swift,Protocols,众所周知,无法从-header.h中的文件中包含接口头文件。 我的实际问题是,我对一类协议的定义是Swift协议: @protocol arrivingDelegate; @interface palettaTraffic : NSObject<MKMapViewDelegate, arrivingDelegate> { } 我还发现了一个类似的帖子: 但这些建议似乎都不适用 如果导入*-Swift.h文件,当该文件包含在头文件中的另一个文件中时,我会进入一个丑陋的循环 好吧,

众所周知,无法从-header.h中的文件中包含接口头文件。 我的实际问题是,我对一类协议的定义是Swift协议:

@protocol arrivingDelegate;

@interface palettaTraffic : NSObject<MKMapViewDelegate, arrivingDelegate> {
}
我还发现了一个类似的帖子:

但这些建议似乎都不适用

如果导入*-Swift.h文件,当该文件包含在头文件中的另一个文件中时,我会进入一个丑陋的循环

好吧,但那是你必须做的。我看不到你在上面的屏幕截图上这样做,这就是为什么你的协议没有被看到

“丑陋循环”的解决方案应该只是调整在各种Objective-C文件中导入内容的顺序

如果导入*-Swift.h文件,当该文件包含在头文件中的另一个文件中时,我会进入一个丑陋的循环

好吧,但那是你必须做的。我看不到你在上面的屏幕截图上这样做,这就是为什么你的协议没有被看到


“丑陋循环”的解决方案应该只是调整在各种Objective-C文件中导入内容的顺序。

在Objective-C中采用swift协议是一个棘手的过程。我也通过将采用类移植到Swift解决了这个问题。

在Objective-c中采用Swift协议是一个棘手的过程。我通过将采用类也移植到Swift解决了这个问题。

在我的项目中,我倾向于将ObjC类的协议一致性放在Swift文件中,以避免这个错误。通常是定义协议的文件

扩展PalettaTraffic:ArrivingDelegate{}

为什么??我们正在将代码库从ObjC迁移到Swift,但我们不能同时迁移每个类。因此,我们在Swift和ObjC之间有一个很大的“seen”,Swift类型需要ObjC,反之亦然。对我来说,这是一个立即导致最少工作量的解决方案。

我在项目中倾向于将ObjC类的协议一致性放在Swift文件中,以避免此错误。通常是定义协议的文件

扩展PalettaTraffic:ArrivingDelegate{}

为什么??我们正在将代码库从ObjC迁移到Swift,但我们不能同时迁移每个类。因此,我们在Swift和ObjC之间有一个很大的“seen”,Swift类型需要ObjC,反之亦然。对我来说,这是一种立即产生最少工作量的解决方案。

与类的方法相同:
@protocol StripeProtocol我添加了一个屏幕截图,显示在特定情况下使用@protocol指令时出现的警告。这可能让我确信我不能使用这种技术。然而,出于某些原因,它在其他文件中运行良好我添加了一个屏幕截图,显示在特定情况下使用@protocol指令时出现的警告。这可能让我确信我不能使用这种技术。但在其他文件中,由于某些原因,它工作正常。我发布了一个修改后的屏幕截图,其中的错误已变成警告。它不比警告更糟糕的原因是
@protocol
指令仅仅意味着“相信我,编译器,有这样一个协议。”因此编译器确实信任您,而且非常确定,在运行时,事实证明你说的是实话。但你肯定希望最终摆脱所有的警告。我知道这个故事,但最终在链接时间,所有的部分都应该恢复正常。我忽略了为什么这个具体问题不存在。如果这件事持续下去,我也会把它翻译成Swift这个类。我发布了一个修改过的屏幕截图,其中的错误已经变成了警告。它比警告更糟糕的原因是
@protocol
指令仅仅意味着“相信我,编译器,有这样一个协议。”因此编译器确实信任你,而且非常肯定,在运行时,事实证明你说的是实话。但你肯定希望最终摆脱所有的警告。我知道这个故事,但最终在链接时间,所有的部分都应该恢复正常。我忽略了为什么这个具体问题不存在。如果这件事持续下去,我也会为斯威夫特翻译这门课。
@objc public protocol arrivingDelegate {
    func submitManualBusLine(busStripe:StripeProtocol)
}