首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Objective-C中的友元类

Objective-C中的友元类
EN

Stack Overflow用户
提问于 2010-02-11 08:46:29
回答 2查看 7.8K关注 0票数 19

有没有办法在Objective-C中创建类似friend类的东西?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-11 08:46:36

首先使用标准的类扩展方法声明一个“私有属性”:

代码语言:javascript
复制
// VisualNotePlayer.h
@interface VisualNotePlayer : NSObject<NotePlayer>{
    @private
    UIView *_currentView;
}

// VisualNotePlayer.m
@interface VisualNotePlayer()
@property (nonatomic, retain) UIView *currentView;
@end

@implementation VisualNotePlayer
@synthesize currentView=_currentView;
...
@end

然后在类别中重新创建属性:

代码语言:javascript
复制
// VisualNotePlayer+Views.h
@interface VisualNotePlayer(Views)
@property (nonatomic, retain) UIView *currentView;
@end

只有导入VisualNotePlayer+Views.h的用户才能访问此界面

票数 31
EN

Stack Overflow用户

发布于 2010-02-11 14:32:48

在ObjC中没有friend类这样的东西。

要访问另一个类的私有变量,甚至不需要声明为朋友。例如,您可以使用运行时函数

代码语言:javascript
复制
id the_private_ivar;
object_getInstanceVariable(the_object, "_ivar_name", &the_private_ivar);

来获取the_object->_ivar_name,绕过编译器检查。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2241488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档