首页 文章

(NSDictionary <NSString *,id> * __nonnull)是什么意思? [重复]

提问于
浏览
1

这个问题在这里已有答案:

参数类型是( NSDictionary<NSString *,id> * __nonnull ),它表示参数应该是字典,永远不能为空 . 那么 <NSString *, id> 意味着什么?是'NSString *'和'id'协议名称?这是否意味着字典必须是json?但NSString总是对象 . 有人帮吗?

1 回答

  • 6

    它是 Objective C light weight generics 的语法 . 此功能主要用于修复Objective C - Swift互操作性问题 .

    NSDictionary<NSString *,id> 表示字典键的类型应为 NSString ,它的值可以是任何类型的对象( id ) .

    For Example: 如果要声明仅包含NSString值的字典,可以将其声明为:

    NSDictionary<NSString *,NSString *> *stringDictionary;
    

    但是在Objective C中,您可以为此字典设置任意类型的值,不会出现错误 . 但是如果从swift类中使用相同的 stringDictionary 对象,则只能为此字典设置字符串值,否则会抛出错误 .

    有关详细信息,请查看article .

相关问题