2016-04-10 7 views

答えて

1

func instagram(timerObject: NSTimer) { 
    if let webview = timerObject.userInfo as! WKWebView{ 
    if webview.loading == false { 
     let code: String = "document.getElementsByClassName('2yal _csflf').item(3).click();" 
     webview.evaluateJavaScript(code, completionHandler: nil) 
     let dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(1 * Double(NSEC_PER_SEC))) 
     dispatch_after(dispatchTime, dispatch_get_main_queue(), { 
      self.i = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: Selector("instagramloaded:"), userInfo: webview, repeats: true) 
     }) 
    } 
    } 
} 

引数内のオブジェクトは、NSTimerオブジェクトとして受信されると、あなたはユーザ情報オブジェクトとしてメソッド呼び出しから送信されたデータを取り出すことがあるので。お役に立てれば。

0
Selector("instagram:") mapping to func instagram(webview: WKWebView) 

NSTimer引数を持つメソッドを呼び出します。メソッドはメソッドを起動するNSTimerインスタンスを受け取ります。 WKWebViewインスタンスではありません。 WKWebViewインスタンスを取得する。 timerのuserInfoプロパティを使用します。クラッシュが起こっている理由です

、 [__NSCFTimer isLoading]:認識されていないセレクタが0x145a03fe0

__NSCFTimerはNSTimerインスタンスであり、isLoadingはNSTimerで利用できない場合に送信されました。

あなたは以下のような方法を変更する必要があります