這讓我感到困惑。我在NSURLConnection
上吸引了類方法,沒有任何問題,但我堅持使用+[NSURLSession sessionWithConfiguration:delegate:delegateQueue:]
。可以hook + [NSURLSession sessionWithConfiguration:delegate:delegateQueue:]但調用%orig給出「無法識別的選擇器」
我甚至嘗試記錄所有類方法class_copyMethodList (object_getClass([NSURLSession class]), &count);
和類方法是居然還有: sessionWithConfiguration:delegate:delegateQueue: initialize
而且奇怪的是鉤不會被調用,所以我認爲我們得到了它的權利。調用%orig()
,只是傳遞參數下收益率:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSURLSession sessionWithConfiguration:delegate:delegateQueue:]: unrecognized selector sent to class 0x1919932b8'
這裏的鉤:
+ (NSURLSession *)sessionWithConfiguration:(NSURLSessionConfiguration *)configuration
delegate:(id<NSURLSessionDelegate>)delegate
delegateQueue:(NSOperationQueue *)queue
{
NSURLSession *origResult = %orig(configuration, delegate, queue);
return origResult;
}
我錯過了什麼?
設置細節: rpetrich's Theos 的Mac OS X 10.9.5 產品iPad Air 1 的iOS 7.1.2
問題: 1.在使用'SessionWithConfiguration'' DelegateQueue'的情況下,它不編譯,因爲這個方法不在任何地方,或者它應該在另一個頭文件中? 2.如果你的意思是'sessionWithConfiguration''delegateQueue'。它會在一個永遠遞歸的調用中結束,因爲它只是自稱。 3. self不能在類方法中使用,只能在實例方法中使用。 – radj 2014-10-28 08:22:46
只需瀏覽此鏈接http://qiita.com/aKentaKoyama/items/96a979ab3a140e7b39ec – vishnu 2014-10-28 09:05:10