首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Crash NSProxy doesNotRecognizeSelector:

Crash NSProxy doesNotRecognizeSelector:
EN

Stack Overflow用户
提问于 2017-01-03 09:57:44
回答 1查看 1.2K关注 0票数 1

Fabric向我展示了很多用户在我的应用程序中出现了以下崩溃

如果展开,我会看到以下堆栈

代码语言:javascript
复制
 Fatal Exception: NSInvalidArgumentException
 0  CoreFoundation                 0x18ef201c0 __exceptionPreprocess
 1  libobjc.A.dylib                0x18d95855c objc_exception_throw
 2  CoreFoundation                 0x18ef20108 -[NSException initWithCoder:]
 3  Foundation                     0x18f9eb714 -[NSProxy doesNotRecognizeSelector:]
 4  CoreFoundation                 0x18ef24278 ___forwarding___
 5  CoreFoundation                 0x18ee1e59c _CF_forwarding_prep_0
 6  WatchConnectivity              0x1a39caff0 __57-[WCSession onqueue_completeSwitchTask:withSessionState:]_block_invoke
 7  Foundation                     0x18f9e17e4 __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__
 8  Foundation                     0x18f926358 -[NSBlockOperation main]
 9  Foundation                     0x18f916954 -[__NSOperationInternal _start:]
 10 Foundation                     0x18f9e3b90 __NSOQSchedule_f
 11 libdispatch.dylib              0x18dda91c0 _dispatch_client_callout
 12 libdispatch.dylib              0x18ddb7444 _dispatch_queue_serial_drain
 13 libdispatch.dylib              0x18ddac9a8 _dispatch_queue_invoke
 14 libdispatch.dylib              0x18ddb938c _dispatch_root_queue_drain
 15 libdispatch.dylib              0x18ddb90ec _dispatch_worker_thread3
 16 libsystem_pthread.dylib        0x18dfb12c8 _pthread_wqthread
 17 libsystem_pthread.dylib        0x18dfb0db4 start_wqthread

我的假设是有些东西不适用于WatchKit。在我的应用程序中,有一个类已经准备好将数据传输到监视工具包应用程序中,但是在构建阶段,并没有对监视应用程序和监视工具包扩展的引用。

我班上的代码是

代码语言:javascript
复制
import Foundation
import WatchConnectivity

class WatchManager: NSObject
{
    func setLanguage(localization: String)
    {
        if #available(iOS 9.0, *) {
            if WCSession.isSupported() {
                let watchSession = WCSession.defaultSession()
                watchSession.delegate = self
                watchSession.activateSession()
                if watchSession.paired && watchSession.watchAppInstalled {
                    watchSession.transferUserInfo(["localization": localization])
                }
            }
        }
    }
}

extension WatchManager: WCSessionDelegate
{
    @available(iOS 9.3, *)
    func session(session: WCSession, activationDidCompleteWithState activationState: WCSessionActivationState, error: NSError?)
    { }

    @available(iOS 9.0, *)
    func sessionDidBecomeInactive(session: WCSession)
    { }

    @available(iOS 9.0, *)
    func sessionDidDeactivate(session: WCSession)
    { }
}

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2017-01-03 18:38:29

看起来,您的应用程序正在使用NSProxy子类作为WCSession的委托。情况是这样吗?如果是的话,请尝试将其更改为NSObject子类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41440768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档