是否有可以将ACAccountTypeIdentifier转换为SLServiceType的函数?

时间:2013-08-23 04:06:10

标签: ios objective-c sdk

我看到那些是相似的

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);

为什么要跟踪两者?为什么有两组不同的常数?有没有可以将一个转换为另一个的功能,还是我应该自己创建它?

2 个答案:

答案 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类型的枚举,就是这样。我可以通过调用这些函数轻松完成其余的工作。