0

に問題がありWCSession activateSessionます。メソッドにこのコードを追加しましたが、呼び出しviewDidLoad時にクラッシュしていactivateSessionます。sendMessage もクラッシュしています。

if ([WCSession isSupported]) {
    [WCSession defaultSession].delegate = self;
    [[WCSession defaultSession] activateSession];
}

私はその問題がスレッドにあると思っていましたが、それとこれらの呼び出しをメインスレッドでデバッグしています。

何が問題なのですか?

ここにクラッシュログがあります:

スレッド#1:TID = 0x10AA81、0x0000000110917817 libobjc.a.dylib objc_msgSend + 23, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x408f59958d3) frame #0: 0x0000000110917817 libobjc.A.dylibobjc_msgsend + 23フレーム#1:0x000000010be8fd1c +[CRWCSessionDelegateProxy performSwizzledWCSessionActivateSession:] + 62 frame #2: 0x000000010be8f869 myAppmyapp + [crwcsessiondelegateproxy activatesessionforwcsession:disfcatd 3:0 + 72 frame __72+[CRWCSessionDelegateProxy swizzleWCSessionActivateSessionWithDispatch:]_block_invoke + 37 * frame #4: 0x000000010bd6c4e4 myAppasplicatedsession:frame 0x00007ff588d06800, _cmd="application:didFinishLaunchingWithOptions:", application=0x00007ff588c00850, launchOptions=0x0000000000000000) + 5236 at FPMAppDelegate.m:188 frame #5: 0x000000010e50d1f1 UIKit -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 272 frame #6: 0x000000010e50e397 UIKit-[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 3415 frame #7: 0x000000010e514cc6 UIKit -[UIApplication _runWithMainScene:transitionContext:completion:] + 1760 frame #8: 0x000000010e511e7b UIKit- [UIApplication workspaceDidEndTransaction:] + 188 フレーム #9: 0x0000000113203754 FrontBoardServices-[FBSSerialQueue _performNext] + 192 frame #10: 0x0000000113203ac2 FrontBoardServices-[FBSSerialQueue _performNextFromRunLoopSource] + 45 frame #11: 0x0000000110db4a31 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 frame #12: 0x0000000110daa95c CoreFoundation__CFRunLoopDoSources0 + 556 frame #13: 0x0000000110da9e13 CoreFoundation __CFRunLoopRun + 867 frame #14: 0x0000000110da9828 CoreFoundationCFRunLoopRunSpecific + 488 frame #15: 0x000000010e5117cd UIKit -[UIApplication _run] + 402 frame #16: 0x000000010e516610 UIKitUIApplicationMain + 171 frame #17: 0x000000010bcdc8cf myApp main(argc=1, argv=0x00007fff540ca3c0) + 111 at main.m:16 frame #18: 0x0000000111ab292d libdyld.dylibstart + 1

4

2 に答える 2

3

私のアプリには Crittercism フレームワークがあります。アプリのデリゲート メソッドでこの行にコメントすると、すべて正常に動作します。

[Crittercism enableWithAppID:CRITTERCISM_APP_ID];

アプリで Cirttercism を使用している場合は、Crittercism の[[WCSession defaultSession] activateSession]前にこの行を必ず記述してください。彼らは時計 2.0 をサポートしているようで、それが競合の原因です。

于 2016-01-08T15:10:50.727 に答える
1

コードは前に呼び出す必要があります

[Crittercism enableWithAppID:].
于 2016-09-20T16:32:32.880 に答える