let sessions = TWTRTwitter.sharedInstance().sessionStore.existingUserSessions()
应该返回一个
TWTRSession
数组。但是,元素的类型为untyped(
Any
),并且使用if let authsession = any as? TWTRSession
转换为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 now returns TWTRAuthSession: so how does one access the userName property now?
最佳答案
我最终创建了一个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];
}