3
let sessions = TWTRTwitter.sharedInstance().sessionStore.existingUserSessions()

应该返回一个 s 数组TWTRSession。然而,元素的类型是无类型的 ( Any),并且使用 TWTRSession 进行转换if let authsession = any as? TWTRSession失败。此外,强制施法显然会崩溃。

let authsession = any as! TWTRSession // crashes

崩溃错误:

Could not cast value of type 'TWTRSession' (0x103fbe370) to 'TWTRSession' (0x103cf5cc8).

这是一个非常有趣的错误,你不觉得吗?TWTRSession 匹配,但可以肯定的是,十六进制值不匹配。

哦,这一直工作到 3.3.0 之前。Twitter 人员没有发布说明或迁移说明。事情只是默默地停止工作。

相关:TWTRTwitter sessionStore 现在返回 TWTRAuthSession:那么现在如何访问 userName 属性?

4

1 回答 1

0

我最终创建了一个 C 函数来重新创建数组并从我的 Swift 文件中调用它:

NSArray<TWTRSession *> *existingUserSessions(TWTRSessionStore *store) {
    NSArray<TWTRSession *> *existingSessions = store.existingUserSessions;
    NSUInteger count = existingSessions.count;
    NSMutableArray<TWTRSession *> *sessions = [NSMutableArray arrayWithCapacity:count];
    for (TWTRSession *session in existingSessions) {
        [sessions addObject:session];
    }
    
    return [sessions copy];
}
于 2020-07-11T23:50:52.587 回答