我从我正在使用的库中获取该代码。通过检查像SKStoreProductParameterAffiliateToken这样的常量的地址来完成什么?
#ifdef __IPHONE_8_0
if (&SKStoreProductParameterAffiliateToken) {
if (self.affiliateToken) {
[appParameters setObject:self.affiliateToken forKey:SKStoreProductParameterAffiliateToken];
if (self.campaignToken) {
[appParameters setObject:self.campaignToken forKey:SKStoreProductParameterCampaignToken];
}
}
}
#endif
Xcode是说第一行总是会被评估为true,但是这条线究竟是做什么的?我从来没有看到一个if
与&
,并以这种方式常数。
SKStoreProductParameterAffiliateToken
被定义为
SK_EXTERN NSString * const SKStoreProductParameterAffiliateToken NS_AVAILABLE_IOS(8_0);
什么是开发尝试检查,恒定的地址?他是否试图检查iOS的版本是否具有此常量定义,并且通过这样做,他试图检查if中是否应该运行?但他已经有ifdef __IPHONE_8_0
...(?? !!)
我不明白这一点。
无论如何,我正在编译的iOS 9.3,所以我可以删除if
和ifdef
,对不对?
至少运行'SKStoreProductParameterAffiliateToken'在IOS 8.0加入。如果你不需要支持iOS 7,那么你可以删除'#ifdef'和'if'。 – rmaddy