在单独的文件中使用接口声明

时间:2012-08-31 22:07:26

标签: ios interface

game.h文件

@interface ViewController : UIViewController
{
  UIImageView * player;
}

@end

game.m

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

player.m

我想在此文件中使用InitPlayer,但在game.h文件中保留声明。

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

}

这可能吗?

由于

1 个答案:

答案 0 :(得分:0)

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

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

- (void)InitPlayer;

@end

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

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

回答澄清的问题:

好的,然后就这样做:

Player.h

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

Player.m

@implementation Player

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

@end

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

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