简体   繁体   English

快速设置NSArray协议

[英]set NSArray protocol in swift

In Objective-C you can do something like NSArray<ReviewC>* reviews; 在Objective-C中,您可以执行类似NSArray<ReviewC>* reviews; in order to make a variable NSArray which follows the protocol ReviewC, I need to do the same in Swift, I need to make NSArray follow a protocol, it has to be An NSArray, not an Array. 为了使变量NSArray遵循协议ReviewC,我需要在Swift中做同样的事情,我需要使NSArray遵循协议,它必须是NSArray,而不是Array。

I know I can do that on Objective C, and that I can mix Objective C with Swift, but I prefer to use Swift if possible. 我知道我可以在Objective C上做到这一点,并且可以将Objective C与Swift混合使用,但是如果可能的话,我更喜欢使用Swift。

I think you can do it this way: 我认为您可以这样操作:

protocol ReviewC {
    // protocol definition goes here
}


var reviews : NSArray = NSArray() as? protocol<ReviewC> as! NSArray

You can declare a variable that conforms to a protocol, then assign the NSArray to it, just make sure NSArray conforms to that protocol. 您可以声明一个符合协议的变量,然后为其分配NSArray,只需确保NSArray符合该协议即可。

var object: MyProtocol = NSArray(array: someArray)

in your case: 在您的情况下:

var object: ReviewC = NSArray(array: someArray)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM