【问题标题】:Objective C - Lvalue required as left operand of assignmentObjective C - 左值作为赋值的左操作数
【发布时间】:2011-03-12 17:33:32
【问题描述】:

我收到此代码的错误(需要左值作为赋值的左操作数):

[[addAlertViewController alertsArray] = [NSMutableArray arrayWithObjects:nil] retain];

我该如何解决?

【问题讨论】:

    标签: objective-c nsmutablearray lvalue


    【解决方案1】:

    在解读编译器警告时,了解左值和右值的作用。左值是将被分配的东西,而右值是可以进行分配的东西。 More info on wikipedia

    右值也可以是左值,例如 a = b = c(其中 c 是左值 b 的右值,但 b 是左值 a 的右值)。

    任何时候你看到“需要左值”然后查看 = 运算符的左侧,那里有一个错误。

    【讨论】:

      【解决方案2】:

      相应的代码如下:

      [addAlertViewController setAlertsArray:[NSMutableArray arrayWithObjects:nil]];
      

      注意您在@interfaceaddAlertViewController 的类中声明:

      @property (nonatomic, retain) NSMutableArray *alertsArray;
      

      在你的实现文件中

      @synthesize alertsArray;
      

      And.. I'll agree with @taskinoor, RTFM.

      【讨论】:

        猜你喜欢
        • 2011-09-03
        • 2018-10-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多