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;
}
这可能吗?
由于
答案 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方法名称通常以小写字符开头。同样,从客户端隐藏这些初始化内容通常是个好主意)