Ich schreibe eine App mit 10.8 + requiments. Jetzt möchte ich NSURLSession für os x über 10,8 verwenden und NSURLConnection für os x 10.8 verwenden nurImportieren Sie nur NSURLSession in OS X 10.8, aber verwenden Sie nicht
ich zwei HTTP-Client haben. httpClientA mit superClass von NSURLSessionManager und httpClientB mit superClass NSURLConnection. wenn ich überprüfe, dass Systemversion über 10.8 ist, dann verwende ich httpClientB. das ist, was ich will.
aber, wenn mein app auf 10,8 System starten, es nur zum Absturz bringen und sagt, es ist nicht Symbol
Dyld Error Message: Symbol not found: _NSURLSessionTransferSizeUnknown Referenced from: path/to/my/app Excepted in: /System/Library/Frameworks/Foundation.framework/Version/C/Foundation
ich weiß, dass x 10.8 auf o, das Symbol überhaupt NSURLSessionTransferSizeUnknown doesn existiert finden kann, aber Ich bin in einen Codeabschnitt gelaufen, der dieses Symbol benutzt. Wie kann ich das vermeiden? lass es einfach nicht beim Start, und alles wird in Ordnung sein. (Ich denke)
oder, gibt es irgendeine Laufzeit Trick/Check kann ich verwenden?
danke!
UPDATE
i löste dieses Problem durch schwaches Glied oder @class NSURLSession in einer pch Datei gesetzt werden.
das Problem ist in meiner .m-Datei
@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 } }
ich diese Laufzeitprüfungen getan haben. und verwenden Sie einfach @class, um den Link anzugeben, der nicht nach der NSURLSession-Klasse sucht. Es wird da sein, wenn ich es brauche. aber in 10.8, ich habe NSURLSession und ich werde es nicht verwenden.
es ist nicht was ich meine. sehe meine Antwort :) – sunus