objective-c - 在 Objective-C 中使用 Swift 下标

标签 objective-c swift swift2

我已经在 swift 中声明了一个下标,想知道是否可以在 Objective-c 中使用 swift 下标?因为我已经让我的类继承自 NSObject 并将下标公开。但我仍然无法访问它。 我根据 Apple 的“Using Swift with Cocoa and Objective-C”中的这一行来问这个问题:

enter image description here

如何使下标兼容 Objective-C 或者 Swift 下标是一个特定的 swift 功能?

最佳答案

这是绝对可能的,请参阅:

class MyArray : NSObject {
    var data: [Int] = [0, 1, 2]

    subscript (index: Int) -> NSNumber {
        return data[index]
    }
}

对象-C:

MyArray *array = [[MyArray alloc] init];
NSNumber *value = array[0];

但也有一些限制。您不能返回原始值 (Int),您必须返回 Obj-C 对象,例如NSNumber.

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

相关文章:

ios - UIPageViewController 以编程方式进行中间转换?

objective-c - 使用 CFWriteStream 将文件传输到套接字

ios - 从深度嵌套的 UIView 快速调用方法

swift - 出现错误 :-Cannot convert value of type 'NotificationItem' to closure result type 'RTVNotification'

iphone - 苹果拒绝 iPad 应用

ios - 在 UIViews 层动画后,UIView 上的 UIPanGestureRecognizer 行为异常

swift - RxSwift - rx.tap 不工作

ios - 在 XCODE 7(swift 2)-CGPOINTMAKE 中构建我的第一款游戏?

swift - 定义属性时无法在闭包中引用 self

swift - CFArray takeRetainedValue() 删除导致崩溃