基本问题陈述:
我有充分的理由在需要通过引用传递小数的应用程序中进行一些指针幻想。
所以我有一个存储许多小数的类,所以可以说它有一个这样的属性:
@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/