我有这样的代码片段
c = NSClassFromString(@"__NSCFURLSession");
使用 ios 7 模拟器,我能够得到 c
c类__NSCFURLSession 0x00000001113a2ce8
但在 ios 8 下,我得到了
c 类 0x0 0x0000000000000000
有人对此有解决方案吗?
我有这样的代码片段
c = NSClassFromString(@"__NSCFURLSession");
使用 ios 7 模拟器,我能够得到 c
c类__NSCFURLSession 0x00000001113a2ce8
但在 ios 8 下,我得到了
c 类 0x0 0x0000000000000000
有人对此有解决方案吗?
带有下划线的类__NSCFURLSession
是私有的,不应直接访问。原因是,当底层实现发生变化时——就像它在 iOS 7 和 8 之间所做的那样——任何依赖于这些私有实现细节的东西都会受到破坏。
实际的公共类是NSURLSession
,可以使用NSClassFromString(@"NSURLSession")
或简单地访问它[NSURLSession class]
。
我认为 NSCFURLSession 不是一个真实的类,iOS 8 有更强的类类型检查并且能够检测到一个真实的类。
尝试将行更改为:
c = NSClassFromString(@"NSURLSession");
看起来 Apple 已将此私有类更改为 __NSURLSessionLocal
c = NSClassFromString(@"__NSURLSessionLocal")