2016-10-06 4 views
1

Я модернизированный приложение iOS 10 и XCode 8, после обновления приложения происходит сбой в IPad с журналом следующим образом:SpliteViewController SetValue: forUndefinedKey]: этот класс не является значение ключа кодирования совместимым для ключа _masterColumnWidth в IPad

*** Завершение приложения из-за неперехваченного исключения «NSUnknownKeyException», причина: '[ setValue: forUndefinedKey:]: этот класс не является ключевым значением , совместимым с кодировкой для ключа _masterColumnWidth.'

Проверить журнал полного краха ниже:

* Нагрузочное приложение из-за неперехваченное исключение 'NSUnknownKeyException', причина: «[ SetValue: forUndefinedKey]: этот класс не является значение ключа coding- совместим с ключом _masterColumnWidth. ' * Первый стек броска вызова: (0 CoreFoundation 0x000000010bdc634b exceptionPreprocess + 1 171 libobjc.A.dylib
0x000000010b32b21e objc_exception_throw + 48 2 CoreFoundation
0x000000010bdc6299 - [NSException поднять] + 9 3 Фундамент
0x0000000106ace2ff - [NSObject (NSKeyValueCoding) SetValue: forKey:] + 291 4 UIKit 0x000000010803c8c3 - [UIViewController SetValue: forKey:] + 88 5 Профили 0x0000000104319ae5 - [AppDelegate применения: didFinishLaunchingWithOptions:] + 3765 6 UIKit
0x0000000107e9968e - [UIApplication _handleDel egateCallbacksWithOptions: isSuspended: restoreState:] + 290 7 UIKit 0x0000000107e9b013 - [UIApplication _callInitializationDelegatesForMainScene: transitionContext:] + 4236 8 UIKit 0x0000000107ea13b9 - [UIApplication _runWithMainScene: transitionContext: завершение:] † 1731 9 UIKit 0x0000000107e9e539 - [UIApplication workspaceDidEndTransaction:] + 188 10 FrontBoardServices 0x00000001110ff76b __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK
+ 24 11 FrontBoardServices 0x00000001110ff5e4 - [FBSSerialQueue _performNext] + 189 12 FrontBoardServices 0x00000001110ff96d - [FBSSerialQueue _performNextFromRunLoopSource] + 45 13 CoreFoundation 0x000000010bd6b311 CFRUNLOOP_IS_CALLING_OUT_TO_A_S OURCE0_PERFORM_FUNCTION + 17 14 CoreFoundation 0x000000010bd5059c __CFRunLoopDoSources0 + 556 15 CoreFoundation 0x000000010bd4fa86 __CFRunLoopRun + 918 16 CoreFoundation
0x000000010bd4f494 CFRunLoopRunSpecific + 420 17 UIKit
0x0000000107e9cdb6 - [UIApplication _run] + 434 18 UIKit
0x0000000107ea2f34 UIApplicationMain + 159 19 Профили
0x000000010458fb9f main + 111 20 libdyld.dylib
0x000000010cfa968d start + 1 21 ???
0x0000000000000001 0x0 + 1)

Используется ниже код для установки masterColumnWidth из SpliteViewController:

SpliteViewController *objSpliteViewController = [[Navigation getStoryBord] instantiateViewControllerWithIdentifier:@"SpliteViewController"]; 

[objSpliteViewController setValue:[NSNumber numberWithFloat:370.0f] forKey:@"_masterColumnWidth"]; 

прекрасно работает в версии IOS, ниже 10 и версии XCode ниже 8.

ответ

0

Поскольку доступ к этому внутреннему имуществу недоступен для iOS 10. Вообще говоря, доступ к этим видам свойств - рискованная практика. Вы должны использовать либо соответствующие свойства и методы, чтобы изменить ширину ведущей колонки:

1. Свойства

objSpliteViewController.maximumPrimaryColumnWidth = 370.0; 
objSpliteViewController.minimumPrimaryColumnWidth = 370.0; 

2. Методы

[objSpliteViewController setMaximumPrimaryColumnWidth:370.0]; 
[objSpliteViewController setMinimumPrimaryColumnWidth:370.0]; 

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

Смежные вопросы

 Смежные вопросы