Mrw*_*lfy 6 struct objective-c ios
我试图使用结构来存储三个值作为一个单位可以这么说.我收到一个错误:" Expression not assignable"当我尝试从对象的超级视图为结构值赋值时.
有谁知道这是为什么?
在我班的.h文件中,我已经定义了struct和一个属性
@interface MyClass : UIView
{
struct customStruct {
float a;
float b;
float c;
};
}
@property (assign, nonatomic) struct customStruct myStruct;
Run Code Online (Sandbox Code Playgroud)
从超级视图我尝试分配一个值,我得到一个错误:" Expression not assignable"
object.myStruct.a = someValue;
Run Code Online (Sandbox Code Playgroud)
Eng*_*epe 20
试试这个:
struct customStruct aStruct = object.myStruct;
aStruct.a = someValue;
object.myStruct = aStruct
Run Code Online (Sandbox Code Playgroud)
这是完全相同的情况,因为无法做到这一点:
view.frame.size.width = aWidthValue;
Run Code Online (Sandbox Code Playgroud)
BTW在类接口中声明一个struct似乎是一个非常糟糕的风格.这更清洁:
typedef struct {
float a;
float b;
float c;
} customStruct;
@interface MyClass : UIView
@property (assign, nonatomic) customStruct myStruct;
Run Code Online (Sandbox Code Playgroud)
这是因为object.myStruct返回结构成员的副本,并且没有必要更改a该副本的成员.
你应该让整个struct更改成员,然后再次设置struct成员(使用get/set合成方法)
| 归档时间: |
|
| 查看次数: |
23445 次 |
| 最近记录: |