gpt4 book ai didi

objective-c - 如何在 Objective-C 中使用访问器方法来处理指针

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:17:26 25 4
gpt4 key购买 nike

基本问题陈述:

我有一个很好的理由在需要通过引用传递小数的应用程序中做一些指针幻想。

所以我有一个存储许多小数的类,所以假设它有一个这样的属性:

@property (nonatomic) double myDecimalValue;

我想通过对其他类的引用来传递它。

[someOtherObject sendMyDecimalByReference:&myDecimalValue];

但是,问题出现了!实际必须写的方式(因为它是一个属性)是

[someOtherObject sendMyDecimalByReference:&decimalOrigin.myDecimalValue];

这在 objective-c 中编译失败

我通过编写以下内容来绕过它

- (double *) myDecimalValueRef;

[someOtherObject sendMyDecimalByReference:[decimalOrigin myDecimalValue]];

除非我有几十个这样的小数,而且我不想为每个值都编写那个愚蠢的包装函数。

在 Objective-C 中是否有仅使用 Getter 函数的简写方法?

假设我有充分的理由不使用 NSNumber。

谢谢!

最佳答案

您可以直接使用和访问实例变量而不是属性吗?然后它将以与 C 结构成员相同的方式工作...

@interface SomeClass : NSObject
{
@public
double myDecimalValue;
}

// Keep the getter or not, assuming you synthesize it in a way that uses the
// myDecimalValue ivar
@property (nonatomic) double myDecimalValue;

@end

然后你可以这样访问它:

[someOtherObject sendMyDecimalByReference:&decimalOrigin->myDecimalValue];

当然,健壮性是有限的,someOtherObject 必须在您实际取消引用该值时保持有效对象,并且如果您有子类/父类(super class),则必须考虑这种设计。 ..

关于objective-c - 如何在 Objective-C 中使用访问器方法来处理指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13765990/

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