无法使用const限定类型分配给变量

时间:2016-07-08 11:10:02

标签: ios objective-c swrevealviewcontroller

我试图动态更改SWSegueFrontIdentifier的值,因为前视图是动态的。以下是我的代码

if ([prefs boolForKey:@"isDashboardAvailable"])
{
    SWSegueFrontIdentifier = @"sw_front";          
} else {
    SWSegueFrontIdentifier = @"sw_second_front";
}

但是我得到以下错误

  

无法分配给变量'SWSegueFrontIdentifier'   const限定类型'NSString * const __strong'

为什么我收到此错误?我怎样才能更改SWSegueFrontIdentifier值?

2 个答案:

答案 0 :(得分:1)

你自己的问题给你答案。您正在尝试更改constant的值,这是不可能的,您无法更改常量的值。如果你想改变SWSegueFrontIdentifier的值,声明就像这样的变量不是常数

NSString *SWSegueFrontIdentifier = @""; 
if ([prefs boolForKey:@"isDashboardAvailable"])
{
    SWSegueFrontIdentifier = @"sw_front";
} 
else {
    SWSegueFrontIdentifier = @"sw_second_front";
}

答案 1 :(得分:1)

因为您希望它是动态前视图控制器,请尝试以下操作..

创建另一个const变量,如下所示

NSString * const SWSegueSecondFrontIdentifier = @"sw_second_front";

然后在loadStoryboardControllers方法

中实现以下代码
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
     if ([prefs boolForKey:@"isDashboardAvailable"])
     {
       [self performSegueWithIdentifier:SWSegueSecondFrontIdentifier sender:nil];
     } else {
       [self performSegueWithIdentifier:SWSegueFrontIdentifier sender:nil];
     }
如果您有任何困难,请退回。