首页 > ios获取系统通讯录部分数据问题

ios获取系统通讯录部分数据问题

谁能告诉我为什么这个没错,通讯录中的“地址栏”打印出来貌似是字典,但是我用的是字符串接收,而且还能调用字典的方法


address 本身 是个字典
address也是个实例
Objc中 类型判断并不严格 你用什么指针指向实例都可以
甚至你能不能调用方法 编译时 也不会报错(应该会warning)
这些都算动态特性


那个你“用字符串接收”只是把它的地址赋给了字符串类型的指针而已,这个指针指向的那块区域仍然是一个 dictionary。valueForKey是一个所有 NSObject 都有的方法,所以能通过编译,运行时调的就是内存指向的那个 Dictionary 的方法,所以当然没问题了。

你只是让它假装是个 NSString,实际上它一直都是 NSDictionary…… 你如果调 NSString 特有的方法,马上就 crash 了。

【热门文章】
【热门文章】