gpt4 book ai didi

iphone - Objective C - 访问另一个实例的实例变量?

转载 作者:行者123 更新时间:2023-12-03 20:26:02 32 4
gpt4 key购买 nike

考虑到我们在同一个类中工作,是否可以访问另一个实例的变量?

或者,换句话说,你能在 Objective C 中执行这个 Java 代码(它可以在 Java 中运行,我之前已经做过):

class Matrix {
private int mat[] = new int[16]; //wouldn't be a pointer in C

public Matrix (Matrix m){
for (int i = 0; i < 16; i++){
this.mat[i] = m.mat[i]; //<-- this here
}
}
}

鉴于数组不能成为 Objective C 中的属性,我无法将 mat[] 设为属性。那有什么办法可以做到这一点吗?

最佳答案

你可以做得很好,只是不能将实例变量(ivar)变成属性:

@interface Matrix : NSObject
{
@private
int mat[16];
}
- (id) initWithMatrix:(Matrix *)m;
@end

@implementation Matrix
- (id) initWithMatrix:(Matrix *)m
{
if ((self = [super init]))
{
for(int i = 0; i < 16; i++)
mat[i] = m->mat[i];
// Nota bene: this loop can be replaced with a single call to memcpy
}
return self;
}
@end

关于iphone - Objective C - 访问另一个实例的实例变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5919161/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com