eureka community swift uitableview uisegmentedcontrol

community - eureka swift 4



Cómo corregir un error: esta clase no es compatible con la codificación de valores clave para la tabla tableView ''. (2)

Hice una aplicación con Table View y Segmented Control , y esta es mi primera vez. Estoy usando algún código y algunos tutoriales, pero no está funcionando. Cuando ejecuto mi aplicación, se bloquea y muestra este error en los registros:

MyApplication [4928: 336085] * Finalización de la aplicación debido a la excepción no detectada ''NSUnknownKeyException'', razón: ''[setValue: forUndefinedKey:]: esta clase no es compatible con la codificación de valores clave para la tabla table clave.'' * Primer lanzamiento de la pila de llamadas: (0 CoreFoundation 0x000000010516fd85 __exceptionPreprocess + 165 1 libobjc. A.dylib 0x0000000105504deb UIKit 0x0000000103c37d0c - [UIViewController setValue: forKey:] + 88 5 UIKit 0x0000000103e6e7fb - [UIRuntimeOutletConnection cONNECT] + 109 6 CoreFoundation 0x00000001050a9890 - [NSArray makeObjectsPerformSelector:] + 224 7 UIKit 0x0000000103e6d1de - [UINib instantiateWithOwner: opciones:] + 1,864 8 UIKit 0x0000000103c3e8d6 - [UIViewController _loadViewFromNibNamed: bundle:] + 381 9 UIKit 0x0000000103c3f202 - [UIViewController loadView] + 178 10 UIKit 0x0000000103c3f560 - [UIViewController loadViewIfRequired] + 138 11 UIKit 0x0000000103c3fcd3 - [Ver UIViewController] + 27 12 UIKit 0x000000010440b024 - [_ UIFullscreenPresentationController _setPresentedViewController:] + 87 13 UIKit 0x0000000103c0f5ca - [UIPresentationController initWithPresentedViewController: presentingViewController:] + 133 14 UIKit 0x0000000103c525bb - [UIViewController _presentViewController: withAnimationController: completado:] + 4,002 15 UIKit 0x0000000103c5585c - [UIViewController _performCoordinatedPresentOrDismiss: animado:] + 489 16 UIKit 0x0000000103c5536b - [UIViewController presentViewController: animada: completado:] + 179 17 0x00000001041feb8d UIKit __67- [UIStoryboardModalSegueTemplate newDefaultPerformHandlerForSegue:] _ block_invoke + 243 18 UIKit 0x00000001041ec630 - [UIStoryboardSegueTemplate _performWithDestinationViewController: remitente:] + 460 19 UIKit 0x00000001041ec433 - [_perform UIStoryboardSegueTemplate:] 0x00000001041ec6f7 + 82 20 UIKit - [UIStoryboardSegueTemplate realizar:] + 156 21 UIKit 0x0000000103aa6a8d - [UIApplicación de la clase de la clase de la clase de la acción de la clase: de: forEvent:] + 92 22 UIKit 0x0000000103c19e67 - [UIControl sendAction a la que se le toma la cuenta de la persona a la que se le ha dado la bienvenida a la tabla de la luz: 27 24 UIKit 0x0000000103c19263 - [uicontrol touchesEnded: withEvent:] + 601 25 UIKit 0x0000000103b1999f - [UIWindow _sendTouchesForEvent:] + 835 26 UIKit 0x0000000103b1a6d4 - [UIWindow sendEvent:] + 865 27 UIKit 0x0000000103ac5dc6 - [UIApplication sendEvent:] + 263 28 UIKit 0x0000000103a9f553 _UIApplicationHandleEventQueue + 6660 29 CoreFoundation 0x0000000105095301 _CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION_ + 17 30 CoreFoundation 0x000000010508b22c __CFRunLoopDoSources0 + 556 31 CoreFoundation 0x000000010508a6e3 __CFRunLoopRun + 867 32 CoreFoundation 0x000000010508a0f8 CFRunLoopRunSpecific + 488 33 GraphicsServices 0x000000010726dad2 GSEventRunModal + 161 34 UIKit 0x0000000103aa4f09 UIApplicationMain + 171 35 dhikr 0x0000000101f26282 principal + 114 36 libdyld.dylib 0x00000001064c392d inicio + 1) libc ++ abi.dylib: termina con una excepción no detectada de tipo NSException

El código que utilicé es:

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { let foodList:[String] = ["Bread", "Meat", "Pizza", "Other"] let drinkList:[String] = ["Water", "Soda", "Juice", "Other"] @IBOutlet weak var mySegmentedControl: UISegmentedControl! @IBOutlet weak var myTableView: UITableView! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { var returnValue = 0 switch(mySegmentedControl.selectedSegmentIndex) { case 0: returnValue = foodList.count break case 1: returnValue = drinkList.count break default: break } return returnValue } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let myCell = tableView.dequeueReusableCellWithIdentifier("myCells", forIndexPath: indexPath) switch(mySegmentedControl.selectedSegmentIndex) { case 0: myCell.textLabel!.text = foodList[indexPath.row] break case 1: myCell.textLabel!.text = drinkList[indexPath.row] break default: break } return myCell } @IBAction func segmentedControlActionChanged(sender: AnyObject) { myTableView.reloadData() }

Aquí está el principal.

Revisé el código muchas veces, pero no está funcionando. Primero tuve que usar solo Table View , viendo este tutorial ( https://www.youtube.com/watch?v=ABVLSF3Vqdg ) Pensé que funcionaría usar Segmented Control como en el tutorial. Pero todavía no funciona. Mismo código, mismo error. Alguien me puede ayudar ?


¿Alguna posibilidad de que haya cambiado el nombre de su vista de tabla de "tableView" a "myTableView" en algún momento?


Tiene su guión gráfico configurado para esperar una salida llamada tableView pero el nombre de salida real es myTableView .

Si elimina la conexión en el guión gráfico y vuelve a conectarse al nombre correcto de la variable, debería solucionar el problema.