我看到那些是相似的
SOCIAL_EXTERN NSString *const SLServiceTypeTwitter NS_AVAILABLE(10_8, 6_0);
SOCIAL_EXTERN NSString *const SLServiceTypeFacebook NS_AVAILABLE(10_8, 6_0);
SOCIAL_EXTERN NSString *const SLServiceTypeSinaWeibo NS_AVAILABLE(10_8, 6_0);
SOCIAL_EXTERN NSString *const SLServiceTypeTencentWeibo NS_AVAILABLE(10_9, 7_0);
SOCIAL_EXTERN NSString *const SLServiceTypeLinkedIn NS_AVAILABLE(10_9, NA);
ACCOUNTS_EXTERN NSString * const ACAccountTypeIdentifierTwitter NS_AVAILABLE(NA, 5_0);
ACCOUNTS_EXTERN NSString * const ACAccountTypeIdentifierFacebook NS_AVAILABLE(NA, 6_0);
ACCOUNTS_EXTERN NSString * const ACAccountTypeIdentifierSinaWeibo NS_AVAILABLE(NA, 6_0);
ACCOUNTS_EXTERN NSString * const ACAccountTypeIdentifierTencentWeibo NS_AVAILABLE(NA, 7_0);
ACCOUNTS_EXTERN NSString * const ACAccountTypeIdentifierLinkedIn NS_AVAILABLE(NA, NA);
为什么要跟踪两者?为什么有两组不同的常数?有没有可以将一个转换为另一个的功能,还是我应该自己创建它?
答案 0 :(得分:2)
在不知道你想要做什么的更多细节的情况下,需要在两组常量之间进行转换,这对我来说是错误的。
Social.framework和Accounts.framework是用于不同目的的独立框架 - 您可以使用一个而不用另一个。
答案 1 :(得分:0)
我最终完成了这些功能:
-(NSString *) strAccountTypeIdentifier
{
if (self.bglm==BGLoginModeTwitter)
{
return ACAccountTypeIdentifierTwitter;
}
else if(self.bglm==BGLoginModeFacebook)
{
return ACAccountTypeIdentifierFacebook;
}
else
{
return nil;
}
}
-(NSString *) strSLServiceType
{
if (self.bglm==BGLoginModeTwitter)
{
return SLServiceTypeTwitter;
}
else if(self.bglm==BGLoginModeFacebook)
{
return SLServiceTypeFacebook;
}
else
{
return nil;
}
}
-(ACAccountType *) ACAccounts
{
NSAssert(self.ACAstore, @"ACAStore must not be empty by this time");
return [self.ACAstore accountTypeWithAccountTypeIdentifier:self.strAccountTypeIdentifier];
}
-(NSString *) strAccountName{
if (self.bglm==BGLoginModeTwitter)
{
return @"Twitter";
}
else if(self.bglm==BGLoginModeFacebook)
{
return @"Facebook";
}
else
{
return nil;
}
}
现在,我只需要一个BGLoginMode类型的枚举,就是这样。我可以通过调用这些函数轻松完成其余的工作。