2016-04-11 3 views
0

Hallo Leute im Moment verloren auf diesen Fehler, es ist mein erstes Mal Umgang mit IOS und mit Swift und obwohl ich in der Lage gewesen, 1 Gestenerkennung für eine Ansicht zu verwenden, muss ich mehrere festlegen für jedes Objekt (component.control hat einen ANYOBJECT-Typ), und wenn ich es laufen und drücken sie die Taste (als ANYOBJECT Typ bestanden) i in der appDelegate.swift gerade dieser FehlerFehler beim Zuweisen mehrerer Gestenerkenner zu AnyObject

line 1: class AppDelegate: UIResponder, UIApplicationDelegate{ //Thread 1: EXC_BAD_ACCESS (code=1,address=0x1) 

jede mögliche Hilfe-Datei bekommen geschätzt werden! Danke!

hier ist das, was ich habe Überschreibung func viewDidLoad() { super.viewDidLoad()

//gestures 
    let gesture_tap = UITapGestureRecognizer(target: self, action: #selector(ComponentDetailViewController.ctrl_tapped(_:event:))); 
    let gesture_pinch = UIPinchGestureRecognizer(target: self, action: #selector(ComponentDetailViewController.ctrl_pinched(_:event:))); 
    let gesture_swipe = UISwipeGestureRecognizer(target:self, action: #selector(ComponentDetailViewController.ctrl_swiped(_:event:))); 
    let gesture_longPress = UILongPressGestureRecognizer(target: self, action: #selector(ComponentDetailViewController.ctrl_longPressed(_:event:))); 
    let gesture_rotate = UIRotationGestureRecognizer(target:self,action: #selector(ComponentDetailViewController.ctrl_rotated(_:event:))); 
    let gesture_pan = UIPanGestureRecognizer(target:self, action: #selector(ComponentDetailViewController.ctrl_panned(_:event:))); 

    let ctrl = component?.control; 

    ctrl!.addGestureRecognizer(gesture_tap); 
    ctrl!.addGestureRecognizer(gesture_pinch); 
    ctrl!.addGestureRecognizer(gesture_swipe); 
    ctrl!.addGestureRecognizer(gesture_longPress); 
    ctrl!.addGestureRecognizer(gesture_rotate); 
    ctrl!.addGestureRecognizer(gesture_pan); 

    gesture_tap.delegate = self; 
    gesture_pinch.delegate = self; 
    gesture_swipe.delegate = self; 
    gesture_longPress.delegate = self; 
    gesture_rotate.delegate = self; 
    gesture_pan.delegate = self; 


    component?.control = ctrl as? UIView; 

    //component?.control!.userInteractionEnabled = true; 
    //component?.control!.addGestureRecognizer(tap); 
    viewDisplayComponent.addSubview((component?.control)! as! UIView); 

} 


//Gesture methods 
func ctrl_tapped(ctrl: AnyObject, event:UIEvent){ 
    setMessage("TO_tapped"); 
} 
func ctrl_pinched(ctrl: AnyObject, event:UIEvent){ 
    setMessage("TO_pinchedWithArgs") 
} 
func ctrl_swiped(ctrl: AnyObject, event:UIEvent){ 
    setMessage("TO_swipedWithArgs"); 
} 
func ctrl_longPressed(ctrl: AnyObject, event:UIEvent){ 
    setMessage("TO_longPressedWithArgs"); 
} 
func ctrl_rotated(ctrl: AnyObject, event:UIEvent){ 
    //logTextView.text += "Rotated"; 
} 
func ctrl_panned(ctrl: AnyObject, event:UIEvent){ 
    setMessage("TO_pannedWithArgs"); 
} 

Antwort

1

Nach dem docs:

Die Aktionsmethoden aufgerufen, um eine der entsprechen müssen folgende Unterschriften:

  • (ungültig) handleGesture;
  • (void) handleGesture: (UIGestureRecognizer *) gestenRecognizer;
    Swift Übersetzung:
    handleGesture (GestureRecognizer: UIGestureRecognizer)

Doch alle Aktionsmethoden haben Unterschriften mit zwei Argumenten. Ich bin mir nicht sicher, wie Sie mit einem Gestenerkenner arbeiten konnten.

bekomme ich nur diesen Fehler in der appDelegate.swift Datei:

Linie 1: Klasse AppDelegate: UIResponder, UIApplicationDelegate { // Thread 1: EXC_BAD_ACCESS (code = 1, Adresse = 0x1)

Was ist mit dem oberen Ende der Ausgabe in Xcode Debug-Bereich, also dort, wo print() Anweisungen ausgegeben werden?