私はこのようなコードスニペットを持っています
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 8 では、クラス タイプ チェックがはるかに強化されており、実際のクラスを検出できます。
行を次のように変更してみてください。
c = NSClassFromString(@"NSURLSession");
のようにアンダースコアで始まるクラス__NSCFURLSession
はプライベートであり、直接アクセスするべきではありません。その理由は、基礎となる実装が変更された場合 (iOS 7 と 8 の間で行われたように見える)、これらのプライベートな実装の詳細に依存するものはすべて壊れる可能性があるためです。
実際の public クラスはであり、または でNSURLSession
アクセスできます。NSClassFromString(@"NSURLSession")
[NSURLSession class]