gpt4 book ai didi

objective-c - 如何编写只应在类本身内使用并且能够访问 ivars 的方法

转载 作者:行者123 更新时间:2023-11-30 17:40:51 25 4
gpt4 key购买 nike

我有一个类,其中有一些只能在类本身中使用的方法。存在这些方法是因为我正在执行的图形工作有一个三步过程,但我只希望类的实例访问这些计算的最终结果,在一个简化的示例中:

#import <Foundation/Foundation.h>

@interface GraphicsWorld : NSObject

@property(nonatomic, strong) NSMutableArray *objects;
@property(nonatomic, strong) NSMutableArray *adjustedObjects

/* three methods I'll never use outside of this class

I want to find a way to get replace these methods.
*/
-(void) calcTranslation;
-(void) calcRotation;
-(void) calcPerspective;

/* the one method I'll use outside of this class */
-(NSMutableArray *) getAdjustedObjects;

@end

我可以在我的实现之外定义 c 函数,但这样他们就无法访问属性:

#import <Foundation/Foundation.h>
#import "GraphicsWorld.h"

void calcTranslation()
{
// I'm useless because I can't access _objects.
}

void calcRotation()
{
// Hey, me too.
}

void calcPerspective()
{
// Wow, we have a lot in common.
}

@implementation GraphicsWorld

-(NSMutableArray *) getAdjustedObjects
{
calcTranslation();
calcRotation();
calcPerspective();

return adjustedObjects;
}

@end

最佳答案

除非我误解了你的问题,否则听起来你只是想隐藏你的方法不被公开?如果是这样,只需从标题中删除它们即可。您不再需要在 objc (Xcode) 中提前声明方法。编译器现在只会在内部找到它们。

关于objective-c - 如何编写只应在类本身内使用并且能够访问 ivars 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21358254/

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