【问题标题】:lValue required as left Operand of AssignmentlValue 需要作为赋值的左操作数
【发布时间】:2011-02-15 17:53:09
【问题描述】:

我正在尝试取消存档到 NSMutableArray。这个语句给了我一个“左值需要作为赋值的左操作数”

[[[VariableStore sharedInstance] riskValues] = [NSKeyedUnarchiver unarchiveObjectWithFile:[self archivePath]]];

NSMutableArrayVariableStore 单例中声明。大家有什么想法吗?

【问题讨论】:

    标签: objective-c ios4 sdk


    【解决方案1】:

    你不能这样赋值,你需要一个setter方法......

    [[VariableStore sharedInstance]setRiskValues:[NSKeyedUnarchiver unarchiveObjectWithFile:[self archivePath]]];
    

    【讨论】:

      【解决方案2】:

      你应该使用setter:

      [VariableStore sharedInstance].riskValues = [NSKeyedUnarchiver unarchiveObjectWithFile:[self archivePath]];
      

      或者:

      [[VariableStore sharedInstance] setRiskValues:[NSKeyedUnarchiver unarchiveObjectWithFile:[self archivePath]]];
      

      【讨论】:

      • 对任何做类似事情的人来说只是一个有用的说明:第一种形式要求+[VariableStore sharedInstance]的返回值是静态类型的。如果返回id,则必须使用第二个(或者强制转换返回值,不过好心痛,设置这个属性值得付出多少努力?)。
      猜你喜欢
      • 2011-09-03
      • 2018-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多