object_getIvar不适合访问值类型

OBJC_EXPORT id object_getIvar(id obj, Ivar ivar)

这个方法的返回值只能是id类型,对于值类型是无法返回的就会崩溃。文档里边已经说明的很明确了。因为oc是机制,因此你编译时是不会报错的。只会在运行时发现返回的却不是id类型,发生崩溃。

如果你系那个访问一个类的属性完全可以通过下边这个方法:

- (nullable id)valueForKey:(NSString *)key;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 1,824评论 0 9
  • 我们常常会听说 Objective-C 是一门动态语言,那么这个「动态」表现在哪呢?我想最主要的表现就是 Obje...
    Ethan_Struggle阅读 2,235评论 0 7
  • 一个男孩的故事 小小一年级,午休故事多。 依然是午休。 一个男孩趴桌上偷偷地各种玩,玩铅笔、橡皮、卷笔刀、书包,更...
    叶子飘飘吧阅读 408评论 1 1