Приложение xcode iOS вылетает после переименования контроллера представления - PullRequest
0 голосов
/ 11 марта 2019

Outlets Сбой при входе Снимок экрана Crash Image

Crash Image Screenshot[1]

Я получаю сбой после переименования моего View Controller.Swift file to CalculatorViewController.swift Я также попытался рефакторинг нового имени класса для зеркального отображения на всех портах входа в приложение.Я получаю ошибку сигнала об ошибке.Пожалуйста, помогите с этим!Это - моя ошибка*

ОБНОВЛЕНИЕ.

2019-03-11 15: 36: 01.990755 + 0530 NDv2 [4619: 144763] Неизвестный класс CalculatorViewController в файле Interface Builder.2019-03-11 15: 36: 02.040903 + 0530 NDv2 [4619: 144763] * Завершение работы приложения из-за необработанного исключения «NSUnknownKeyException», причина: «[setValue: forUndefinedKey:]: этот класс не является значением ключа coding-соответствует ключу TextOutput. '* стек вызовов первого выброса: (0 CoreFoundation 0x000000010ef3e1bb exceptionPreprocess + 331 1 libobjc.A.dylib
0x000000010cf58735 objc_exception_throw + 48 2 CoreFoundation
0x00000001026xException0x000000010c983de4 - [SetValue NSObject (NSKeyValueCoding): forKey:] + 292 4 UIKitCore 0x00000001113a3292 - [UIViewController SetValue: forKey:] + 87 5 UIKitCore 0x000000011163a573 - [UIRuntimeOutletConnection подключить] + 109 6
CoreFoundation 0x000000010ef29cfd - [NSArray makeObjectsPerformSelector:] +317 7 UIKitCore
0x00000001116372b9 - [UINib instantiateWithOwner: параметры:] + + 1814 8
UIKitCore 0x00000001113aa452 - [UIViewController _loadViewFromNibNamed: комплект: 001010 0 0 0) UC UC: пользовательский контроль[UIViewController loadViewIfRequired] + 175 11 UIKitCore 0x00000001113ab940 - [UIViewController view] + 27 12 UIKitCore 0x0000000111a02c53 - [UIWindow addRootViewControllerViewIfPossible] + 122 13 UIKitCore 0x0000000111a0336e - [UIWindow _setHidden: принудительная:] + 294 14 UIKitCore 0x0000000111a165c0 - [UIWindow makeKeyAndVisible] + 42 15 UIKitCore
0x00000001119c3833 - [UIApplication _callInitializationDelegatesForMainScene: transitionContext:] + 4595 16 UIKitCore 0x00000001119c8c2f - [UIApplication _runWithMainScene: transitionContext: завершение:] + +1623 17 UIKitCore 0x00000001111e74e9 __111 - [__ UICanvasLifecycleMonitor_Compatability _scheduleFirstCommitForScene: переход: firstActivation: завершение:] _ block_invoke + 866 18 UIKitCore 0x00000001111f029c + [_ UICanvas _enqueuePostSettingUpdateTransactionBlock:] + 153 19 UIKitCore 0x00000001111e7126 - [__ UICanvasLifecycleMonitor_Compatability _scheduleFirstCommitForScene: переход: firstActivation:завершение:] + 233 20 UIKitCore 0x00000001111e7ae0 - [__ UICanvasLifecycleMonitor_Compatability activEventsOnly: withContext: завершение:] + 1085 21 UIKitCore
0x00000001111e5cb5 __82 - [_ UIApplication_transitionLifecycleStateWithTransitionContext: завершение:] _ block_invoke + 795 22 UIKitCore 0x00000001111e595f - [_ UIApplicationCanvas _transitionLifecycleStateWithTransitionContext: завершение:] + 435 23 UIKitCore 0x00000001111eaa90 __125 - [_ UICanvasLifecycleSettingsDiffAction performActionsForCanvas: withUpdatedScene: settingsDiff: fromSettings: transitionContext:] _ block_invoke+ 584 24 UIKitCore 0x00000001111eb80e _performActionsWithDelayForTransitionContext + 100 25 UIKitCore 0x00000001111ea7ef - [_ UICanvasLifecycleSettingsDiffAction performActionsForCanvas: withUpdatedScene: settingsDiff: fromSettings: transitionContext:] + 221 26 UIKitCore 0x00000001111ef93a - [_ UICanvas сцена: didUpdateWithDiff: transitionContext: завершение:] + 392 27 UIKitCore 0x00000001119c744e - [Рабочая область приложения UIA: didCreateScene: withTransitionContext: завершение:] + 515 28 UIKitCore 0x000000011156bd09 - [UIApplicationSceneClientAgent scene: didInitializeWithEvent: завершение:] + 357 29 FrontBoardServices 0x000000011a0fc2da - [FBSSceneImpl _didCreateWithTransitionContext: завершение:] + 448 30 FrontBoardServices 0x000000011a107443 __56- [клиент FBSWorkspace: handleCreateScene: withCompletion:] _ block_invoke_2 + 271 31 FrontBoardServices 0x000000011a106b3a __40- [FBSWorkspace _performDelegateCallOut:] _ block_invoke + 53 32 libdispatch.dylib 0x000000011047e602 _dispatch_client_callout + 8 33 libdispatch.dylib 0x0000000110481b78 _dispatch_block_invoke_direct + 301 34 FrontBoardServices 0x000000011a13bba8 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK
+ 30 35 FrontBoardServices 0x000000011a13b860 - [FBSSerialQueue _performNext] + 457 36 FrontBoardServices 0x000000011a13be40 - [FBSSerialQueue _performNextFromRunLoopSource] + 45 37 CoreFoundation 0x000000010eea3721 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 17 38 CoreFoundation 0x000000010eea2f93 __CFRunLoopDoSources0 + 243 39 CoreFoundation 0x000000010ee9d63f __CFRunLoopRun + 1263 40 CoreFoundation
0x000000010ee9ce11 CFRunLoopRunSpecific + 625 41 GraphicsServices
0x000000011713b1dd GSEventRunModal + 62 42 UIKitCore
0x00000001119ca81d UIApplicationMain + 140 43 NDv2
0x000000010c6291c7 main + 71 44 libdyld.dylib
0x00000001104f4575 start + 1) libc ++ abi.dylib: заканчивается необработанное исключение типа NSException

Ответы [ 3 ]

1 голос
/ 11 марта 2019

enter image description here Существует два способа изменить имя ViewController:

1) Пример: класс LoginViewController: UIViewController - просто выберите «LoginViewController», затем щелкните правой кнопкой мыши -> Refactor -> Rename

Это изменит имя файла имени, имя класса и позаботится об имени класса раскадровки.

2) Если вы не можете использовать метод 1, а затем вручную переименовать имя файла (.swift), то вам нужно перейти к раскадровке и заменить имя класса контроллера представления. У вас могут быть проблемы с торговыми точками.

3) После этого закройте Xcode, а затем снова запустите ваш проект.

0 голосов
/ 11 марта 2019

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

В вашей раскадровке выберите контроллер начального вида и проверьте, есть ли ссылка на IBOutlet с именем TextOutput . Удалите эту ссылку и снова свяжите вид. Это должно исправить это

0 голосов
/ 11 марта 2019

У вас есть textField или textView или UILabel в вашем контроллере в раскадровке,

1 - Откройте раскадровку

2 - щелкните UIViewController (ViewController с новым именем класса, который вы изменили)

3- удалите розетку с именем TextOutput

4- Переподключите, если хотите, и вы готовы к работе

...