【问题标题】:Use Swift subscripts in objective-C在 Objective-C 中使用 Swift 下标
【发布时间】:2016-07-18 19:12:04
【问题描述】:

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

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

【问题讨论】:

    标签: objective-c swift swift2


    【解决方案1】:

    绝对有可能,见:

    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.

    【讨论】:

    • 我不知道这个,这让我很惊讶。
    • 超级。我不知道这些限制。我从我的下标返回 Any 。这有效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多