首页 > 解决方案 > viewController 中的函数崩溃

问题描述

嗨开发人员我遇到了 Adob​​e Audience Manager POD 的问题

在我的 VC 我有这个

override func viewDidLoad() {
        super.viewDidLoad()
        configureUI()
        ACPAudience.signal(withData: ["ViewedScreen": "ButtonClicked"]) { (response, error) in
            if let error = error {
                print(error)
            } else {
                print(response as Any)
            }
        }
    }

每次我运行它都会崩溃:

dynamic_cast 错误 2:以下一个或多个 type_info 具有隐藏可见性或在多个翻译单元中定义。他们都应该有公众知名度。N20AdobeMarketingMobile6ModuleE、N20AdobeMarketingMobile13ConfigurationE、N20AdobeMarketingMobile22ModuleDetailsInterfaceE。

据我所知,实施是正确的 在此处输入图像描述

在此处输入图像描述

解决方案是在应用程序委托中创建一个NSNotification没有崩溃或任何奇怪的东西

应用程序委托中的代码几乎相同

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        

        
        NotificationCenter.default.addObserver(self, selector: #selector(getProfileACP2), name: NSNotification.Name(rawValue: "getProfileACP"), object: nil)
}

@objc private func getProfileACP2(){
        ACPAudience.signal(withData: ["ViewedScreen": "ButtonClicked"]) { (response, error) in
            if let error = error {
                print(error)
            } else {
                print(response as Any)
            }
        }
        
    }

然后在VC上像这样工作

override func viewDidLoad() {
    super.viewDidLoad()
    print("getProfileACP")
    print("----------------------------------------------")
    NotificationCenter.default.post(name: NSNotification.Name(rawValue: "getProfileACP"), object: nil)
    print("----------------------------------------------")
    print("getProfileACP")
}

打电话后似乎需要一些时间才给予回应不是立即 在此处输入图像描述

标签: swiftadobe

解决方案


推荐阅读