私は次がありますスウィフト3時限イベント
このイベントがトリガされたlet processURLS = processingViewController()
Timer.scheduledTimer(timeInterval: 1,
target: self,
selector: #selector(processURLS.getURLsToSend),
userInfo: nil,
repeats: true)
が、私は次のエラーを受信し、これが動作しない理由を私はよく分からない
2016- 11-09 14:47:00.504932 AcumenJLR [3414:905978] *によりキャッチされない例外をアプリ を終了 'NSInvalidArgumentException'、理由: ' - [AcumenJLR.homeViewController getURLsToSend]:インスタンス0x100d25c60に送られ、認識されないセレクター ' *まずスローコールスタック:(0x1816721c0 0x1800ac55c 0x181679278 0x181676278 0x18157059c 0x18215c8f8 0x1816208f4 0x181620608 0x18161fec4 0x18161dac0 0x18154c048 0x182fd2198 0x1875372fc 0x187532034 0x100114620 0x1805305b8)のlibC++ abi.dylib:ここではタイプの キャッチされない例外で終了NSException
getURLsToSend方法
func getURLsToSend() {
//create a fetch request, telling it about the entity
let fetchRequest: NSFetchRequest<URLsToSend> = URLsToSend.fetchRequest()
let context = getContext()
do {
//Get results
let searchResults = try getContext().fetch(fetchRequest)
print ("num of results = \(searchResults.count)")
//You need to convert to NSManagedObject to use 'for' loops
for urls in searchResults as [NSManagedObject] {
//get the Key Value pairs (although there may be a better way to do that...
//print("\(urls.value(forKey: "url"))")
let currentURL = urls.value(forKey: "url")!
//print(urls.value(forKey: "url")!)
completeLoadAction(urlString: currentURL as! String) { code in
if (code == 200){
context.delete(urls)
}
}
}
} catch {
print("Error with request: \(error)")
}
コントローラークラスに 'getURLsToSend'関数がないために発生します – alexburtnik
' processURLS'への参照を保持し、セレクターを 'target:self、.processUrl selector:#selector(getURLsToSend)'に変更してください。 。私はセレクタを実行することはできませんので、あなたの変数processURLがメモリから削除されたことと思います。アップデート: –
しかし、それはセレクタが正しくないこともそうです、あなたは*目標* = 'processUrls'と*セレクタ* =' getURLsToSend' –