1

游戏.h 文件

@interface ViewController : UIViewController
{
  UIImageView * player;
}

@end

游戏.m

-(void)InitPlayer
{    
  player.tag = 0;
}

播放器.m

我希望 InitPlayer 在这个文件中,但在 game.h 文件中保留声明。

- (void)InitPlayer
{
  player.tag = 0;  // access UIImageView *player;

}

这可能吗?

谢谢

4

1 回答 1

0

只需使用它来声明-InitPlayer类的公共接口的一部分:

@interface ViewController : UIViewController
{
@private
  UIImageView * player;
}

- (void)InitPlayer;

@end

然后你将你的实现保存-InitPlayer在 ViewController.m 中,它必须驻留在那里。您不能将方法的实现放在@interface块内。

如果您来自其他语言,那么您应该知道 objc 中的调度是动态的——在标题中放置定义(如果可能的话)不会导致内联/优化。

针对已澄清的问题:

好的,那么就这样做:

播放器.h

@interface Player : NSObject
- (void)prepareUIImageView:(UIImageView *)pImageView; // << could actually be a class method in this case
@end

播放器.m

@implementation Player

- (void)prepareUIImageView:(UIImageView *)pImageView
{
    pImageView.tag = 0;
}

@end

然后你可以告诉 Player 从 初始化视图ViewController,假设它本身没有控制器。

(注意:objc 方法名称通常以小写字符开头。同样,对客户隐藏这些初始化内容通常是个好主意)

于 2012-08-31T22:20:22.213 回答