gpt4 book ai didi

objective-c - 我必须在 Objective C 中使用点符号来访问结构值吗?

转载 作者:行者123 更新时间:2023-12-01 09:20:23 24 4
gpt4 key购买 nike

我到处寻找这个简单问题的答案,但没有找到答案。所以这里是:是否可以在不使用点符号的情况下访问 Objective-C 中的对象的结构值,即仅使用规范的消息语法?例如,假设我们有一个为 Particle 对象定义的 CGPoint 实例变量 position:

//Particle.h
@interface Particle : NSObject {
CGPoint position
}
@property CGPoint position;
@end

以及相应的实现:

//Particle.m
#import "Particle.h"
@implementation Particle
@synthesize position;
@end

假设在其他一些 *.m 文件(例如 AppController.m)中我们有:

a_particle = [Particle alloc];
[a_particle setPosition:CGPointMake(x_val,y_val)];

那为什么我们不能使用:

[[a_particle position] x];

获取 x_val 而不是:

a_paticle.position.x;

注意到后者工作正常?还要注意

[a_particle position].x;

会起作用,但我试图避免用点符号把事情弄得一团糟。我的直觉是结构实例变量必须使用点符号来访问它的值(在本例中为 x_val 和 y_val),这是真的吗?

最佳答案

CGPoint 只是一个普通的旧 C struct,不是 objective-c 类,因此您不能向它发送消息。您需要使用 C 的语法来读取结构成员,即 '.'

关于objective-c - 我必须在 Objective C 中使用点符号来访问结构值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8706415/

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