Objective-C 中 typedef NSDictionary 的合法方式是什么?
What is legitimate way to typedef NSDictionary in Objective-C?
我正在尝试在 Swift 中使用 Objective-C API 并且我必须将 Swift 字典类型转换为 NSSDictionary 但如果有某种方式我可以在下面声明 NSDictionary书面格式,我可以略过多余的类型转换。
typedef NSDictionary* NSDictionary<NSString *, id> *;
在我的 Objective-C API 中有几个词典,我想把它们都转换成上面的 typdef。
您正在尝试将所有 NSDictionary
重新定义为 NSDictionary<NSString *, id>
。这是一个很大的禁忌。相反,创建您自己的类型:
typedef NSDictionary<NSString *, id> MyDictionary;
// Usage
MyDictionary * dict = [MyDictionary dictionaryWithObjectsAndKeys:@1,@"one", @2,@"two", @3,@"three", nil];
Swift:
typealias MyDictionary = [String: Any]
let aDict: MyDictionary = [
"one": 1, "two": 2, "three": 3
]
func doSomething(aDict: MyDictionary) {
// ...
}
我正在尝试在 Swift 中使用 Objective-C API 并且我必须将 Swift 字典类型转换为 NSSDictionary 但如果有某种方式我可以在下面声明 NSDictionary书面格式,我可以略过多余的类型转换。
typedef NSDictionary* NSDictionary<NSString *, id> *;
在我的 Objective-C API 中有几个词典,我想把它们都转换成上面的 typdef。
您正在尝试将所有 NSDictionary
重新定义为 NSDictionary<NSString *, id>
。这是一个很大的禁忌。相反,创建您自己的类型:
typedef NSDictionary<NSString *, id> MyDictionary;
// Usage
MyDictionary * dict = [MyDictionary dictionaryWithObjectsAndKeys:@1,@"one", @2,@"two", @3,@"three", nil];
Swift:
typealias MyDictionary = [String: Any]
let aDict: MyDictionary = [
"one": 1, "two": 2, "three": 3
]
func doSomething(aDict: MyDictionary) {
// ...
}