iOS:只允许某个类访问另一个类中的特定私有方法?
我在类a中有一些public和price方法。我在类B中使用相同的方法,但是我不想在这两个类中复制和粘贴这些方法,而是想从类B访问类a的私有方法 问题是我不希望任何其他类能够访问B以外的这些特定私有方法 做这件事最好的方法是什么 另外,我想将私有方法公开,但是其他任何类都可以访问它们,这是我不想要的(这是针对开源项目的)。我不介意复制和粘贴方法,但我想知道处理这种事情的“正确”方法是什么iOS:只允许某个类访问另一个类中的特定私有方法?,ios,objective-c,class,methods,private,Ios,Objective C,Class,Methods,Private,我在类a中有一些public和price方法。我在类B中使用相同的方法,但是我不想在这两个类中复制和粘贴这些方法,而是想从类B访问类a的私有方法 问题是我不希望任何其他类能够访问B以外的这些特定私有方法 做这件事最好的方法是什么 另外,我想将私有方法公开,但是其他任何类都可以访问它们,这是我不想要的(这是针对开源项目的)。我不介意复制和粘贴方法,但我想知道处理这种事情的“正确”方法是什么 谢谢 您可以使用私有标题 MyClassA.h @interface MyClassA : NSObject
谢谢 您可以使用私有标题 MyClassA.h
@interface MyClassA : NSObject
- (void)publicMethod;
@end
#import "MyClassA.h"
@interface MyClass (Private)
- (void)packageMethod;
@end
MyClassA\u Private.h
@interface MyClassA : NSObject
- (void)publicMethod;
@end
#import "MyClassA.h"
@interface MyClass (Private)
- (void)packageMethod;
@end
您可以使用私有头 MyClassA.h
@interface MyClassA : NSObject
- (void)publicMethod;
@end
#import "MyClassA.h"
@interface MyClass (Private)
- (void)packageMethod;
@end
MyClassA\u Private.h
@interface MyClassA : NSObject
- (void)publicMethod;
@end
#import "MyClassA.h"
@interface MyClass (Private)
- (void)packageMethod;
@end
除非其他类导入类A,否则这不会是个问题,是吗?但是其他类确实导入了它,因为类A和类B都有开发人员可以访问的公共方法,我宁愿不合并这两个类,因为它们相当大,而且恰好是不同对象上的类别。你在这里想保护什么?(这是一个开源项目有什么关系?)你是否担心人们错误地依赖于你将来可能想要改变的方法,或者你是在试图隐藏一些功能或什么?这些都是“主要公共方法”的辅助方法,我只是喜欢保持项目的整洁。因此,当开发人员准备输入一个方法的名称时,我不希望这些助手方法被推荐给他们,因为他们永远不会使用它们,或者至少我不希望他们使用它们。这是我个人的喜好。这也是我提到开源项目的原因。除非其他类导入类A,否则这不会是一个问题吗?是吗?但其他类确实导入了它,因为类A和类B都有开发人员可以访问的公共方法,我宁愿不合并这两个类,因为它们相当大,而且恰好是不同对象上的类别。你在这里想保护什么?(这是一个开源项目有什么关系?)你是否担心人们错误地依赖于你将来可能想要改变的方法,或者你是在试图隐藏一些功能或什么?这些都是“主要公共方法”的辅助方法,我只是喜欢保持项目的整洁。因此,当开发人员准备输入一个方法的名称时,我不希望这些助手方法被推荐给他们,因为他们永远不会使用它们,或者至少我不希望他们使用它们。这是我个人的喜好。这也是我提到开源项目的原因。我建议
MyClassA_Private.h
在MyClassA
的@实现之前使用类扩展和所说的\import
ed扩展。我建议MyClassA_Private.h
使用类扩展和\import
ed扩展在MyClassA
的@实现之前
。