今天在一个OC代码练习中我遇到了 Expression is not assignable 这个问题,起因是这样的
我先是创建了一个Person 类,然后在类中定义了一个Studen 结构体,然后利用这个结构体定义一个 Bob 变量,.h文件的内容如下
#import <Foundation/Foundation.h>
typedef struct
{
int age;
int number;
}Student;
@interface Person : NSObject
{
@public
Student Bob;
}
@property (nonatomic, assign) Student Bob;
@end
然后我在main 函数里面创建了一个Person 的对象p1 ,我想利用p1 对其内置的Bob.age 属性赋值,很自然的我想到了这种方法
p1.Bob.age = 14;
结果刚写完就出现了这个
</

在Objective-C代码练习中遇到'Expression is not assignable'错误,原因是点语法与C语言语法的混淆。OC中的点语法在结构体中不适用,导致C语言函数调用形式错误。解决办法包括在main函数中新建结构体变量进行赋值,或使用箭头操作符替换点语法,并在.h文件中声明并设置成员变量为@public。
最低0.47元/天 解锁文章
1072

被折叠的 条评论
为什么被折叠?



