gpt4 book ai didi

objective-c - 如何从 Swift 为 Objective-C 中定义的接口(interface)指定协议(protocol)同名

转载 作者:可可西里 更新时间:2023-11-01 00:38:18 24 4
gpt4 key购买 nike

在 Objective-C 代码中定义如下时,如何从 Swift 指定 Item 协议(protocol)?

// Objective-C
@protocol Item <NSObject>
@end

@interface Item : NSObject<Item>
@end

@implementation Item
@end



// Swift
var item = Item() // item interface, but I'd like to define as Item protocol.

我应该定义为不同的名称吗?

最佳答案

您无法实例化协议(protocol)类型,因此Item() 将始终引用@interface Item。您应该在声明中明确说明您指的是协议(protocol):

var item: protocol<Item>

顺便说一下,您在 Objective-C 中所做的事情无法在 Swift 中完成——它要求同一范围内的所有声明都具有唯一的命名。按照 Apple 的惯例,您的等价物将如下所示:

@objc(Item) protocol ItemType {

}

class Item: ItemType {

}

关于objective-c - 如何从 Swift 为 Objective-C 中定义的接口(interface)指定协议(protocol)同名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25546862/

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