2015-03-26 3 views
0

Я новичок в xcode и этом форуме, так извините за мой непрофессиональный язык.iOS Simulator crashing in compile

У меня проблема с сбоем симулятора iOS, когда я пытаюсь запустить приложение. Это не всегда происходит, когда я только начал работать над проектом, все в порядке. Но вдруг после того, как я просто изменил что-то второстепенное в коде, симулятор iOS падает, как только он запускается (компиляция работает). Затем Xcode выводит меня на страницу отладки, а также показывает много результатов в нижнем правом углу окна (что я не знаю, как оно называется). Я ничего не получаю от вывода, он говорит что-то о NSencryption. Как только симулятор iOS начнет сбой, он будет сбой при каждом запуске этого проекта/приложения. Даже если я отменил свои изменения, я сделал, когда он прекратил работать, и даже если я удалю весь свой код, и все будет выглядеть как новый проект, ТОЛЬКО НЕ БУДЕТ.

Попытался позвонить в службу поддержки Apple, чтобы решить эту проблему, но они сказали, что я должен опубликовать вопрос на форуме, надеюсь, что вы можете мне помочь, поскольку я действительно устаю от этого, я ничего не могу построить.

Btw Я пытался сбросить симулятор iOS, но та же проблема продолжает возникать.

Вот результат, который я получаю от «консоли»: Кстати, скажите, пожалуйста, если какой-либо из этих кодов разумен, и я удалю его.

2015-03-26 17:39:52.727 Testing123[19815:4331412] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<Testing123.ViewController 0x7f93ea8272c0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key addFive.' *** First throw call stack: ( 0 CoreFoundation 0x00000001026e1a75 __exceptionPreprocess + 165 1 libobjc.A.dylib 0x0000000104239bb7 objc_exception_throw + 45 2 CoreFoundation 0x00000001026e16b9 -[NSException raise] + 9 3 Foundation 0x0000000102afcd43 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 259 4 CoreFoundation 0x000000010262b5e0 -[NSArray makeObjectsPerformSelector:] + 224 5 UIKit 0x000000010323b4ed -[UINib instantiateWithOwner:options:] + 1506 6 UIKit 0x0000000103099a88 -[UIViewController _loadViewFromNibNamed:bundle:] + 242 7 UIKit 0x000000010309a078 -[UIViewController loadView] + 109 8 UIKit 0x000000010309a2e9 -[UIViewController loadViewIfRequired] + 75 9 UIKit 0x000000010309a77e -[UIViewController view] + 27 10 UIKit 0x0000000102fb9509 -[UIWindow addRootViewControllerViewIfPossible] + 58 11 UIKit 0x0000000102fb98a1 -[UIWindow _setHidden:forced:] + 247 12 UIKit 0x0000000102fc5f8c -[UIWindow makeKeyAndVisible] + 42 13 UIKit 0x0000000102f700c2 -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 2732 14 UIKit 0x0000000102f72e3e -[UIApplication _runWithMainScene:transitionContext:completion:] + 1349 15 UIKit 0x0000000102f71d35 -[UIApplication workspaceDidEndTransaction:] + 179 16 FrontBoardServices 0x0000000105deb243 __31-[FBSSerialQueue performAsync:]_block_invoke + 16 17 CoreFoundation 0x0000000102616c7c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12 18 CoreFoundation 0x000000010260c9c5 __CFRunLoopDoBlocks + 341 19 CoreFoundation 0x000000010260c785 __CFRunLoopRun + 2389 20 CoreFoundation 0x000000010260bbc6 CFRunLoopRunSpecific + 470 21 UIKit 0x0000000102f717a2 -[UIApplication _run] + 413 22 UIKit 0x0000000102f74580 UIApplicationMain + 1282 23 Testing123 0x00000001025051ee top_level_code + 78 24 Testing123 0x000000010250522a main + 42 25 libdyld.dylib 0x0000000104a15145 start + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException (lldb)

Это код, который дает мне эту ошибку:

`импорт UIKit

class ViewController: UIViewController { 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


}` 

Вот это project

+2

Добро пожаловать на SO. Если вы хотите, чтобы получить полезный ответ, вы должны опубликовать некоторые соответствующие данные, в вашем случае это будет краш-описание с консоли (нижний правый угол) и код, который, кажется, вызывает проблему. –

+0

как @JakubVano говорит, пожалуйста, разместите свою трассировку стека ... иначе нам будет невозможно помочь вам решить проблему:) – nburk

+0

Похоже, ваше приложение рушится (а не iOS Simulator). Это окно в правом нижнем углу - это окно отладчика (lldb). Пожалуйста, напишите более подробную информацию о сбое (например: ваш код рядом с точкой крушения, backtrace of авария и т. д.), чтобы получить более полезные ответы. –

ответ

0

Вы не дали много деталей , но вот как начать решать вашу проблему.

В нижней части вашего приложения Xcode есть окно отладчика. В этом окне отобразятся сообщения из приложения. Когда ваше приложение выйдет из строя, оно распечатает трассировку стека, которая покажет, что произошло непосредственно перед сбоем.

При размещении здесь вы хотите включить это в свой пост. В этом журнале сбоев верхняя часть скажет вам, в чем проблема: типичные проблемы - это значения nil или вызов чего-то вне диапазона. Посмотрев далее в журнале сбоев, вы обычно увидите системный материал (UIKit и т. Д.). Посмотрите на самый последний метод, вызванный в созданном вами классе. Затем найдите этот метод в своем коде и добавьте точку останова рядом с ним. Точка останова остановит выполнение вашего кода, когда он доберется до этого места. В верхней части окна отладчика в нижней части экрана вы увидите несколько кнопок. Один из них - «шаг за шагом». Когда вы нажмете свою точку останова, используйте кнопку «step over» для выполнения кода по одной строке за раз. Когда вы дойдете до своей проблемы, она потерпит крах.

Вы также захотите, чтобы ошибка Google вывела консоль отладки. 9 раз из 10, кто-то столкнулся с проблемой, с которой вы сталкиваетесь, и вы сможете перейти к решению вашей проблемы. Если это не решит проблему, вы хотите опубликовать здесь подробные сведения и проблемные методы.

Еще одна вещь, которую я рекомендую сделать, - это научиться использовать GitHub. Когда я начал изучать это (и я все еще изучал его), git казался излишним, но в ретроспективе было бы неплохо научиться использовать git с самого начала. Вы сможете создавать филиалы для работы с функциями вашего программного обеспечения и объединять их с «мастером», когда у вас работают новые функции.Когда я начинал, я бы прошел довольно далеко, я бы сделал небольшие изменения, и я сломал кучу вещей - это все равно случится с Git, но у вас будет версия программного обеспечения, которое будет функционировать. Используя Git, вы сможете всегда иметь стабильную версию, которая работает, и вы можете добавлять функции, не беспокоясь о раздувании всего проекта.

Удачи вам!

Обновление новой информации:

Ваша точка будет погуглить это: Terminating app due to uncaught exception 'NSUnknownKeyException', reason: ViewController setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key.

Также import UIKit должен быть #import UIKit. Я подозреваю, что это сообщение направит вас в правильном направлении.

What does this mean? "'NSUnknownKeyException', reason: … this class is not key value coding-compliant for the key X"

Решение:

У вас есть ViewController.swift файл, но файл раскадровка

1) неправильно названы и 2) не имеет каких-либо сцен на нем.

Вот что вам нужно сделать:

1) переименовать раскадровки файл «Main.storyboard» 2) добавить сцену View Controller на раскадровке, как вы в настоящее время не имеют никаких сцен на раскадровку. Вы делаете это, перетаскивая & сбрасывая View Controller из нижней правой части экрана. 3) Когда ваша сцена ViewController подсвечена, в верхней правой части экрана вы увидите несколько кнопок. Один из них называется «Attributes Inspector». Убедитесь, что установлен флажок «Контроллер начального просмотра». Одна кнопка слева - «Identity Inspector». Убедитесь, что для класса установлено значение ViewController.

Я скажу это еще раз. Если вы хотите изучить iOS, я бы рекомендовал сначала изучить GitHub. Кроме того, Stanford University has a free iOS course учил парень, который тесно сотрудничал со Стивом Джобсом, которого вы, вероятно, найдете полезным. Если это «слишком много», я бы посоветовал собрать книгу Big Nerd Ranch или посмотреть на веб-сайт Рэя Вендерлиха.

+1

Не забудьте использовать Git в Xcode из меню Source Control, это легко и хорошо работает. Затем вы можете нажать на GitHub или BitBucket. – zaph

+0

Спасибо за быстрые ответы! Просто хочу проверить с вами, ребята, если ошибка в консоли может содержать какую-либо разумную информацию. Я не хочу, чтобы кто-то задерживался, прежде чем я загружу ошибку? – iEmil

+0

, вероятно, нет. в зависимости от того, что появляется в журнале, возможно, ваше имя пользователя упоминается где-то. перед публикацией вы можете просмотреть его. – Adrian

0

Соответствующая часть сообщения об ошибке: «[< Testing123.ViewController 0x7f93ea8272c0>SetValue: forUndefinedKey:]. Этот класс не является значением ключа кодирования-compliantfor ключ addFive»

Ищут, где вы используете addFive. Это не определен для экземпляра юй используете его.