tutorial the programming objective language curso apple ios swift

ios - objective - the swift programming language pdf



libc++ abi.dylib: termina con una excepción no detectada del tipo NSException(lldb) (30)

¿Estableció la variable OS_ACTIVITY_MODE por casualidad? Para verificar si tiene esta variable establecida (y desactivarla), en Xcode 9, haga lo siguiente:

Select from Xcode menu Product -> Scheme -> Edit Scheme.. Select the Run scheme and look under Arguments. If you see the OS_ACTIVITY_MODE variable checked, deselect it

Estoy programando una aplicación rápidamente y cuando ejecuto la aplicación de prueba en el simulador de iPhone todo funciona, pero luego trato de deslizar hacia la derecha, que es un gesto que agregué para que vaya a la siguiente página (Ver controlador dos) se bloquea y muestra este informe de error en el registro de la consola.

2014-10-18 12:07:34.400 soundtest[17081:818922] *** Terminating app due to uncaught exception ''NSUnknownKeyException'', reason: ''[<soundtest.ViewControllerTwo 0x7f92f1f20090> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key sfdfa.'' *** First throw call stack: ( 0 CoreFoundation 0x00000001067813f5 __exceptionPreprocess + 165 1 libobjc.A.dylib 0x00000001082afbb7 objc_exception_throw + 45 2 CoreFoundation 0x0000000106781039 -[NSException raise] + 9 3 Foundation 0x0000000106b984d3 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 259 4 CoreFoundation 0x00000001066cb400 -[NSArray makeObjectsPerformSelector:] + 224 5 UIKit 0x00000001072ce97d -[UINib instantiateWithOwner:options:] + 1506 6 UIKit 0x000000010712f698 -[UIViewController _loadViewFromNibNamed:bundle:] + 242 7 UIKit 0x000000010712fc88 -[UIViewController loadView] + 109 8 UIKit 0x000000010712fef9 -[UIViewController loadViewIfRequired] + 75 9 UIKit 0x000000010713038e -[UIViewController view] + 27 10 UIKit 0x00000001076cd83f -[_UIFullscreenPresentationController _setPresentedViewController:] + 65 11 UIKit 0x000000010710bc49 -[UIPresentationController initWithPresentedViewController:presentingViewController:] + 105 12 UIKit 0x000000010713c121 -[UIViewController _presentViewController:withAnimationController:completion:] + 1746 13 UIKit 0x000000010713e461 __62-[UIViewController presentViewController:animated:completion:]_block_invoke + 132 14 UIKit 0x000000010713e385 -[UIViewController presentViewController:animated:completion:] + 229 15 UIKit 0x00000001073bb9d6 _UIGestureRecognizerSendActions + 262 16 UIKit 0x00000001073ba679 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 532 17 UIKit 0x00000001073bf296 ___UIGestureRecognizerUpdate_block_invoke662 + 51 18 UIKit 0x00000001073bf192 _UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks + 254 19 UIKit 0x00000001073b520d _UIGestureRecognizerUpdate + 2796 20 UIKit 0x00000001070520a6 -[UIWindow _sendGesturesForEvent:] + 1041 21 UIKit 0x0000000107052cd3 -[UIWindow sendEvent:] + 667 22 UIKit 0x000000010701fae1 -[UIApplication sendEvent:] + 246 23 UIKit 0x000000010702cbad _UIApplicationHandleEventFromQueueEvent + 17370 24 UIKit 0x0000000107008233 _UIApplicationHandleEventQueue + 1961 25 CoreFoundation 0x00000001066b6ad1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 26 CoreFoundation 0x00000001066ac99d __CFRunLoopDoSources0 + 269 27 CoreFoundation 0x00000001066abfd4 __CFRunLoopRun + 868 28 CoreFoundation 0x00000001066aba06 CFRunLoopRunSpecific + 470 29 GraphicsServices 0x000000010a1699f0 GSEventRunModal + 161 30 UIKit 0x000000010700b550 UIApplicationMain + 1282 31 soundtest 0x000000010624503e top_level_code + 78 32 soundtest 0x000000010624507a main + 42 33 libdyld.dylib 0x000000010ae4a145 start + 1 34 ??? 0x0000000000000001 0x0 + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException (lldb)


Agregaré mi problema a la lista de posibles soluciones en caso de que alguien más se encuentre con este hilo.

Identificador de celda de TableView. En primer lugar, asegúrese de que su celda tenga un identificador. En segundo lugar, asegúrese de hacer referencia a ese identificador cuando retire la celda.


Asegúrese de no aplicar dinámicamente restricciones relativas a una vista que aún no está en la jerarquía de vistas.

UIView *bottomView = [[UIView alloc] initWithFrame:CGRectZero]; [self.view addSubview:bottomView]; bottomConstraint = [NSLayoutConstraint constraintWithItem:bottomView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:1 constant:0]; bottomConstraint.active = YES;

En el ejemplo anterior, bottomView se ha convertido en parte de la jerarquía de vistas antes de aplicar restricciones relativas.


CMYR: "esto también podría suceder si ha conectado un botón a una IBAction que ya no existe (o ha cambiado de nombre)"

Si se encuentra con este problema, asegúrese de ir a Main.storyboard, haga clic con el botón derecho del mouse en el ícono del cuadro amarillo (ver controlador) en la parte superior del contorno del teléfono y ELIMINE las salidas con banderas amarillas.

Lo que sucede en casos como este es que probablemente nombró una acción y luego la renombró. ¡Necesita eliminar el nombre anterior y, si ese fuera el único problema, comenzará de inmediato en sim!


En Xcode 9 y Swift 4:

Imprima la pila de excepciones para conocer el motivo de la excepción:

  1. Ir a mostrar el navegador del punto de interrupción.
  2. Agregar (+) Agregar punto de interrupción de excepción.

  3. Seleccione el nuevo punto de interrupción, Control-Clic, Editar punto de interrupción.

  4. Agregar acción e ingresar: po $ arg1


En mi caso, XCode se cansó y no pudo iniciar la aplicación con este mensaje, debido a un error de aserción (que fue establecido por nuestro código).

La ejecución en otro dispositivo mostró el error de aserción, que pudimos solucionar, y todo volvió a la normalidad.


En mi caso, estaba llamando a un método delegado pero el método no fue declarado.

Este error es genérico y puede aparecer por varias razones. Asegúrese de no haber deshabilitado sus Registros para ver realmente qué sucedió. Habilite OS_ACTIVITY_MODE en los esquemas si lo ha deshabilitado. Es posible que lo haya deshabilitado para evitar muchos registros irrelevantes, pero son útiles.

También puede rastrear la causa con más detalles agregando un punto de interrupción de excepción po $arg1 . Como ya mencionó Ahmed-Lotfi

Aquí hay una lista de verificación común que puede revisar.

2) Check if you have renamed an IBOutlet and calling it 3) Check if you have renamed a method name or the method doesn''t exist 4) Check if you are trying to add or remove any view from hierarchy 5) Check for any missing framework or library 6) Check for any missing flag in the Proejct Setting (-obj) or any other linker flag etc.


En mi caso, fue InterfaceBuilder. Copié algunas vistas de otro ViewController que estropeó las restricciones.

En InterfaceBuilder tuve el error de flecha roja en el ViewController.

Durante la ejecución, la aplicación se bloqueó.


En mi caso, la Build Settings del proyecto contenía algunos directorios no existentes para Framework Search Paths y Library Search Paths .


En mi caso, la aplicación se bloqueó porque no configuré la membresía objetivo del guión gráfico.


Esto comenzó a sucederme en Xcode 7, y no tenía salidas con banderas amarillas que pudiera eliminar.

Lo único que funcionó para mí fue reemplazar esta línea en AppDelegate:

[window addSubview:viewController.view];

a:

[window setRootViewController:viewController];


Esto puede suceder si tiene una tabla y olvida asignar UITableViewDelegate y UITableViewDataSource a la clase


Me encontré con este problema cuando cambié el nombre de la variable que se conectaba a uno de mis botones. ¡Así que tenlo en mente!


Mi situación era un poco diferente, estaba tratando de pasar a un UINavigationController , y lo que me solucionó fue obtener la porción de la cola principal.

Para el objetivo-C:

dispatch_async(dispatch_get_main_queue(), ^{ [self performSegueWithIdentifier:@"SegueName" sender:self]; });

Para Swift 3:

DispatchQueue.main.async { [weak self] in self?.performSegue(withIdentifier: "SegueName", sender: self) }


Otra posible causa:

En mi caso, tenía un xib y estaba llamando a Bundle.main.loadNibNamed(... en ese momento se estaba IBOutlets . Todos mis IBOutlets e IBActions parecían estar bien. Al final noté que la nib estaba cargando, pero luego cuando Traté de acceder a la primera (y única) vista ( nib.first ), que no funcionaba. De hecho, nib.count estaba devolviendo un número entero muy grande (max int?), En lugar del esperado 1 Intenté volver a agregar la vista, pero aun así no hubo suerte.

Al final, xib todo el archivo xib y comencé de nuevo (pero xib algunas de las vistas en mi portapapeles para poder pegarlas en lugar de volver a recrearlas).

Esto funcionó!


Otras soluciones no funcionaron conmigo, aquí está la mía. Se aplica solo a Xcode 8 cuando se ejecuta en modo heredado Swift 2.3 :

Parece que Interface Builder está intentando cambiar el nombre del método que se debe conectar al botón.

Aquí hay un radar con más detalles.

La solución (solución alternativa) es reemplazar manualmente el nombre del parámetro del método a _ :

@IBAction func editPictureTapped(sender: UIButton) { // not working print("Tapped") }

Cambiar a esto:

@IBAction func editPictureTapped(_: UIButton) { // working OK print("Tapped") }


Para mí, el problema estaba en mi IBAction con un UIButton.

Cuando Ctrl + Arrastra para crear una IBAction desde un UIButton, asegúrese de seleccionar "UIButton" en el menú desplegable Tipo. La selección predeterminada de AnyObject hace que la aplicación se bloquee cuando toca el botón UIB.


Para mi caso, Xcode 8.2.1 , tenía una Vista de Kit de Mapa en un controlador de vista. Entonces fui a

Fases de construcción> Enlace binario con bibliotecas

y agregó MapKit.framework , entonces estuvo bien.

Creo que esto también se aplicará a otras vistas que requieren marco.

PS Running en iOS 9 me dijo que había un problema con Map Kit View, ¡mientras que en iOS 10 no me dijo nada!



Solo la solución "drop armageddon" funcionó para mí:

  • eliminar la aplicación del dispositivo
  • proyecto limpio
  • ejecutar nueva instalación en dispositivo

Soy nuevo en Xcode, por lo que me tomó algunas horas resolver el problema para cargar el archivo xls. Seguí la mayoría de los códigos de muestra y ninguno de ellos resuelve el error Xcode que se muestra.

La solución que encontré fue que necesitamos especificar ''Agregar a objetivos:'' marque el proyecto para agregar, cuando importamos el archivo xls en Xcode arrastrando y soltando en Proyecto -> Archivos de soporte.


También podría estar equivocado Segue Identifier Name. P.ej -

performSegueWithIdentifier("wrongSegueName", sender: self)


También podría ser un Segmentos activados rotos, revise su guión gráfico, tan pronto como vuelva a conectar los segmentos o la salida, todo debería funcionar nuevamente.

Asegúrese de que el Identifier de Segue sea correcto y similar a su código .


Tengo este error de las siguientes 2 formas:

Recibía este error cuando estaba ingresando a otro UIViewController.

SIN EMBARGO, por error, subclasifiqué la otra clase de UITabBarController y UITabBarController este error.

¿Cómo lo solucioné? Subclase de UIViewController y ya no me UIViewController :)

No quería usar storyboard. Entonces lo borré. Sin embargo, me olvido de eliminar su referencia en la configuración del Proyecto. Acabo de hacer clic en el proyecto >> General >> Información de implementación >> y luego configuro la interfaz principal en el espacio negro. (Se configuró previamente como principal)

Como puede ver en ambas situaciones, obtiene un error al acceder a algún objeto que existe ...


Tuve dos problemas:

1) Mi objetivo no tenía el controlador de vista incluido que se utilizó en el archivo del guión gráfico.

2) Mi guión gráfico tenía aproximadamente 3 años, tuve que recrear uno de los controladores de vista en el controlador de la barra de pestañas desde cero (solo tenía un UITextField y todavía no sé por qué no estaba funcionando)


Tuve el mismo error cuando tuve un error tipográfico para una de las vistas al crear restricciones usando el formateador visual. Espero que eso ayude a alguien ... o a mí otra vez algún día.


Un error conocido con Xcode 11.2 puede causar este problema. Xcode 11.2 ha quedado en desuso.

La descarga de Xcode 11.2.1 resolvió el problema.

Foro de errores de Apple 11.2

También actualicé el dispositivo real al iOS actual, pero no creo que ese fuera el problema.


puede haber más de 1 IBAction para un botón en su controlador de vista, intente encontrarlos y eliminar todos los elementos anteriores para ese botón en su controlador y cree un botón nuevo. Resolverá su problema.


Para Swift 2.3

Esto parece ser un error con Xcode 8 y Swift 2.3, si está conectando la acción del botón a su código a través del guión gráfico, asegúrese de que Xcode no haya cambiado el nombre de la acción, para mí está agregando withSender: al final de los métodos , así que lo que hago es ir a mi código y cambiar el nombre del método para que coincida con el que escribió Xcode.

Para cualquier otra versión, marque la respuesta correcta.


Swift 4 :

Estaba recibiendo este error debido a un cambio en la api UIVisualEffectView. En Swift 3 estaba bien hacer esto: myVisuallEffectView.addSubview(someSubview)

Pero en Swift 4 tuve que cambiarlo a esto: myVisualEffectView.contentView.addSubview(someSubview)