2016-10-06 10 views
1

でキー_masterColumnWidthのためではない私は、iOS 10XCode 8にアプリケーションをアップグレードした:SpliteViewControllerのsetValue:forUndefinedKey:]:次のようにアップグレードするアプリケーションがログとiPadの中にクラッシュした後に、このクラスは、キー値コーディング準拠のiPad

***キャッチされていない例外 'NSUnknownKeyException'、理由: '[ setValue:forUndefinedKey:]:このクラスはキー値ではありません。 キー_masterColumnWidthのコーディングに準拠しています。

以下

チェックフルクラッシュログ:

*キャッチされない例外により 'NSUnknownKeyException'、理由にアプリを終了:「[ のsetValue:forUndefinedKey:]:このクラスは、キー値ではありません coding- _masterColumnWidthキーに準拠しています。 ' *まずスローコールスタック:(0 CoreFoundationの0x000000010bdc634b exceptionPreprocess + 171 1 libobjc.A.dylib
0x000000010b32b21e objc_exception_throw + 48 2 CoreFoundationの
0x000000010bdc6299 - + 9 3財団
[NSException上げる]を 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 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK 0x00000001110ff76b 10 FrontBoardServices
+ 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)SpliteViewControllermasterColumnWidthを設定するコード以下で使用

:8以下10とXcodeバージョン以下IOSバージョンで

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

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

ワークス細かいです。

答えて

0

iOS 10はこの内部プロパティにアクセスできないため、一般に、これらの種類のプロパティにアクセスすることは危険な方法です。

1.プロパティ

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

2.方法

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

セットの両方(最大値と最小値):あなたはマスター列の幅を変更するために、適切なプロパティやメソッドのいずれかを使用する必要があります列の幅が広すぎたり狭すぎたりするのを防ぐために、正確な幅を実現するか、その1つだけを実現します。