显然,我使用Twitter oAuth(令牌请求)在iOS 5中不起作用......我如何将此代码保存在iOS 5以下的任何内容中并使用iOS 5 +的新Twitter Framework?检测Twitter的iOS版本?
是否可以检测iOS版本?
谢谢!
显然,我使用Twitter oAuth(令牌请求)在iOS 5中不起作用......我如何将此代码保存在iOS 5以下的任何内容中并使用iOS 5 +的新Twitter Framework?检测Twitter的iOS版本?
是否可以检测iOS版本?
谢谢!
你(几乎)不想查询iOS(甚至框架)版本。那(通常)意味着你正在解决错误的问题。
在这种情况下,你真的想知道“我可以使用Twitter.framework吗?”
由于弱链接的魔力,你可以尝试这样的:
if ([TWTweetComposeViewController canSendTweet]) {
// Do something
}
else {
// Use your original code
}
您还可以检查较低层次的框架组件,例如:
if ([TWRequest class]) {
// Do something
}
else {
// Use your original code
}
(很显然,您需要链接与Twitter.framework并包括必要的标题)。
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 5.0) {
//tweet
}
请注意,由于浮点转换期间的字符串截断,这对于一般比较而言并不令人满意。总之,不管怎样,你都不应该使用systemVersion。 – 2012-04-04 08:31:06
根据IEEE 754-1985标准,浮点数小于7表示的正整数值被保证延长。为了证明它,从float.h中输出一个FLT_DIG值。 – jacekmigacz 2012-04-04 08:40:56
我想我们正在谈论不同的问题: NSString * v1 = @“5.1”; NSString * v2 = @“5.1.1”; NSLog(@“%@大于%@:%d”,v2,v1,([v2 floatValue]> [v1 floatValue])); 2012-04-04 01:41:44.795 VersionTest [3624:f803] 5.1.1大于5.1:0 – 2012-04-04 08:42:32
检测Twitter类是否在安装的操作系统中:
if (NSClassFromString(@"TWTweetComposeViewController")) {
//use Twitter Framework
}
不要忘记在框架列表中使Twitter框架可选。
现代运行时不需要;只是薄弱环节的框架。通过这种方式,您也可以进行编译时检查拼写错误等。 – 2012-04-04 08:22:21
首先,其他答案是正确的 - 您应该避免使用iOS版本号来检查功能是否存在。然而,如果你确实有充足的理由来检查iOS版本,我最常用的检查iOS版本号的回答是this StackOverflow answer。如此优雅。
您应该查看iOS版本的唯一时间是跟踪客户使用情况。请注意,这也被视为个人身份验证统计信息,如果没有公平请求“获取用户的数据收集权限”,则不应对其进行审查,并且从那时起,您只能将其发送给自己,以便进行分析,而不是发送给第三方。正如下面的答案中所述,查询功能不是操作系统版本。 – 2012-04-04 14:36:08