gpt4 book ai didi

swift - 如何为通用函数过滤或有多个选项?

转载 作者:行者123 更新时间:2023-11-28 16:05:53 25 4
gpt4 key购买 nike

我有一个函数正在接受一个值,然后我将其发送到 NSUserDefaults 以存储在它的属性列表中。

func store<T>(value: T, key: String) -> Bool {
// send key, value to NSUserDefaults
}

如何设置通用约束,使值只能是属性列表接受的可能类型之一?

我在想:

func store<T>(value: T, key: String) -> Bool where T:NSString OR T:NSData OR T:Etc{
// send key, value to NSUserDefaults
}

这当然行不通。

最佳答案

您可以为您希望允许保留的所有类型创建一个自定义协议(protocol):

protocol CustomProtocol {}

extension NSString: CustomProtocol {}
extension NSData: CustomProtocol {}
// etc.


func store<T>(value: T, key: String) -> Bool where T: CustomProtocol {
// send key, value to NSUserDefaults
}

关于swift - 如何为通用函数过滤或有多个选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40294197/

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