#ios #cocoa-touch #swift
#iOS #cocoa-touch #swift
Вопрос:
Я однажды использовал жест салфетки в xCode 6 (используя Swift). Это сработало хорошо.
@IBAction func ArrasteiDireita(sender: UISwipeGestureRecognizer) {
println("Arrastei Direita")
}
Я удалил жест (в main.storyboard) и пытаюсь вместо этого использовать жест панорамирования, но я не знаю, почему жест салфетки все еще требуется.
Я получаю следующую ошибку, если прокомментирован соответствующий метод ( ArrasteiDireita
выше):
2014-07-05 10:48:51.400 Verdadeiro ou Falso[51178:2926619] - [_TtC19Verdadeiro_ou_Falso4Jogo ArrasteiDireita:]: unrecognized selector sent to instance 0xb23bfa0
2014-07-05 10:48:51.402 Verdadeiro ou Falso[51178:2926619] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_TtC19Verdadeiro_ou_Falso4Jogo ArrasteiDireita:]: unrecognized selector sent to instance 0xb23bfa0'
*** First throw call stack:
(
0 CoreFoundation 0x00842646 __exceptionPreprocess 182
1 libobjc.A.dylib 0x0216d8e3 objc_exception_throw 44
2 CoreFoundation 0x00849575 -[NSObject(NSObject) doesNotRecognizeSelector:] 277
3 CoreFoundation 0x00794407 ___forwarding___ 1047
4 CoreFoundation 0x00793fce _CF_forwarding_prep_0 14
5 UIKit 0x01466e63 _UIGestureRecognizerSendActions 327
6 UIKit 0x0146509c -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] 1657
7 UIKit 0x0146772d -[UIGestureRecognizer _delayedUpdateGesture] 60
8 UIKit 0x0146b1cc ___UIGestureRecognizerUpdate_block_invoke689 347
9 UIKit 0x0146af6d _UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks 317
10 UIKit 0x0145e0a8 _UIGestureRecognizerUpdate 3786
11 UIKit 0x0108ff3b -[UIWindow _sendGesturesForEvent:] 1356
12 UIKit 0x01090d9f -[UIWindow sendEvent:] 769
13 UIKit 0x01056c29 -[UIApplication sendEvent:] 242
14 UIKit 0x010665e2 _UIApplicationHandleEventFromQueueEvent 20518
15 UIKit 0x0103bcc5 _UIApplicationHandleEventQueue 2154
16 CoreFoundation 0x00766faf __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ 15
17 CoreFoundation 0x0075c34d __CFRunLoopDoSources0 253
18 CoreFoundation 0x0075b8a8 __CFRunLoopRun 952
19 CoreFoundation 0x0075b22b CFRunLoopRunSpecific 443
20 CoreFoundation 0x0075b05b CFRunLoopRunInMode 123
21 GraphicsServices 0x0417e3ca GSEventRunModal 192
22 GraphicsServices 0x0417e207 GSEventRun 104
23 UIKit 0x0103f6e5 UIApplicationMain 1526
24 Verdadeiro ou Falso 0x0000d591 top_level_code 97
25 Verdadeiro ou Falso 0x0000d5cb main 43
26 libdyld.dylib 0x026aeac9 start 1
)
libc abi.dylib: terminating with uncaught exception of type NSException
(lldb)
Поскольку жест салфетки выполняется перед жестом панорамирования, я не могу получить доступ к методу жестов панорамирования:
@IBAction func Arrastei(sender: UIPanGestureRecognizer) {
println("Arrastado")
}
Есть ли какое-либо другое место, где мне нужно удалить ссылку на жест салфетки?
Комментарии:
1.
unrecognized selector sent to instance
. Но самое странное в том, что, даже удалив жест из раскадровки, метод в коде все еще функционирует.2. Я не думаю, что вы удалили жест должным образом. Попробуйте удалить его один раз, прежде чем добавлять жест панорамирования, и посмотрите, не вызывает ли это ошибок.
3. Даже если я удалю UIImageView (с именем
Imagem
), я все еще получаю сообщение об ошибке (this class is not key value coding-compliant for the key Imagem
)4. Почему вы удалили просмотр изображения? Не делайте этого. Загуглите эту ошибку «ключ-значение», и вы поймете, почему она у вас возникла. Примечание: Вы не соблюдаете соглашения об именовании ObjC / Swift. Пожалуйста, сделайте это, чтобы другим было легче читать ваш код. developer.apple.com/library/Mac/documentation/Cocoa/Conceptual /…