10.8 + requimentsのアプリを書いています。 は、今私は、10.8より上のOS X用のNSURLSessionを使用して、私は2つのHTTPクライアントを持つOS X 10.8 のみOS X 10.8でのみNSURLSessionをインポートしますが、使用しないでください
ためNSURLConnectionを使用したいです。スーパークラスNSURLSessionManagerを持つhttpClientAとスーパークラスNSURLConnectionを持つhttpClientB。システムのバージョンが10.8を超えていることを確認すると、httpClientBが使用されます。それが私が望むものです。
しかし、私のアプリは10.8システム上で起動したときに、それだけでクラッシュし、それは私がX 10.8のOS上で、NSURLSessionTransferSizeUnknownはdoesnのシンボルがまったく存在していることを知っているシンボル
Dyld Error Message: Symbol not found: _NSURLSessionTransferSizeUnknown Referenced from: path/to/my/app Excepted in: /System/Library/Frameworks/Foundation.framework/Version/C/Foundation
を見つけることができないと言うが、私はこのシンボルを使用するコードセクションを実行しました。だから私はこれを避けることができますか?起動時にそれを聞かせて、すべてが大丈夫です(私だと思います)
または実行時のトリック/チェックがありますか?
ありがとうございました!
UPDATE
私は弱いリンクを使用することによって、この問題を解決するか、PCHファイルにNSURLSession @class を置きます。
問題は、私はそれらの実行時チェックを行っている私の.mファイルに
@import <3rd-part-lib1.h> @import <3rd-part=lib2.h> - (void)someMethod:() { if (above 10.8) { do staffs with a 3-rd part library's object whose superClass is NSURLSession } else { do staffs with a 3-rd part library's object whose superClass is NSURLSession } }
です。 NSURLSessionクラスを探していないリンクに@classを使用するだけです。それが必要なときにそこにいるだろう。しかし10.8では、私はNSURLSessionを持っており、私はそれを使用しません。
それは私が意味するものではありません。私の答えを参照してください:) – sunus