在不同的值中调用具有相同字符串的不同方法

时间:2015-11-17 10:29:17

标签: ios objective-c

我的.m文件中有两个方法。我希望通过不同的值访问但在我的Facebook变量中给出nil值但如果我只使用一行并删除第二行对象的密钥那么它可以正常工作方法 。 我如何做这个适用于我的两种方法

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[[NSUserDefaults standardUserDefaults] synchronize];
user=[defaults objectForKey:@"userid"];
facebook=[defaults objectForKey:@"FACEBOOKprofile"];
facebook =[defaults objectForKey:@"VLCC"];

if ([facebook isEqualToString:@"VLCCFACEBOOK"])
{
    [self FacebookRecord];
}
else if([facebook isEqualToString:@"VLCC"])
{
    [self VlccRecord];
}

3 个答案:

答案 0 :(得分:1)

假设

选择-1

// for accessing the both condition in same time

最初将UserDefault value based存储在您的方法上。

如果您使用facebook进行访问,那么就存储字符串

[[NSUserDefaults standardUserDefaults] setObject:"VLCCFACEBOOK" forKey:@"FACEBOOKprofile"];
[[NSUserDefaults standardUserDefaults] synchronize];

如果您使用VLCC进行访问,那么就存储字符串

[[NSUserDefaults standardUserDefaults] setObject:"VLCC" forKey:@"VLCCprofile"];
[[NSUserDefaults standardUserDefaults] synchronize];

并检索两者并检查

if ([[[NSUserDefaults standardUserDefaults]
objectForKey:@"FACEBOOKprofile"]isEqualToString:@"VLCCFACEBOOK"])
{
[self FacebookRecord];
}
if([[[NSUserDefaults standardUserDefaults]
objectForKey:@"VLCCprofile"] isEqualToString:@"VLCC"])
{
[self VlccRecord];
}

<强>选择-2

// for accessing single condition on single time

如果您使用facebook进行访问,那么就存储字符串

[[NSUserDefaults standardUserDefaults] setObject:"VLCCFACEBOOK" forKey:@"FACEBOOKprofile"];
[[NSUserDefaults standardUserDefaults] synchronize];

如果您使用VLCC进行访问,那么就存储字符串

[[NSUserDefaults standardUserDefaults] setObject:"VLCC" forKey:@"FACEBOOKprofile"];
[[NSUserDefaults standardUserDefaults] synchronize];

并检索两者并检查

if ([[[NSUserDefaults standardUserDefaults]
objectForKey:@"FACEBOOKprofile"]isEqualToString:@"VLCCFACEBOOK"])
{
[self FacebookRecord];
}
else if([[[NSUserDefaults standardUserDefaults]
objectForKey:@"FACEBOOKprofile"] isEqualToString:@"VLCC"])
{
[self VlccRecord];
}

答案 1 :(得分:0)

在您的代码中,[self VlccRecord]方法将始终被调用,因为您正在覆盖facebook变量。

facebook=[defaults objectForKey:@"FACEBOOKprofile"];
facebook =[defaults objectForKey:@"VLCC"];

如果您要附加两个字符串:然后使用stringbyAppendingString方法。

答案 2 :(得分:0)

int a = 10;
a = 20;
print >> a; //20

int a = 10;
print1 >> a; //10
a = 20;
print2 >> a; //20

这里,
a = facebook;
print1 = [自我FacebookRecord];
print2 = [self VlccRecord];

我相信你会理解。