2015-11-08 38 views
-1

在下面的代碼中,我試圖在ViewController.h的頭部聲明一個Player類的對象,並在ViewController.m中調用它的方法。這個問題沒有發生,並且方法沒有被調用。有人可以幫助我解決這個問題在ViewController頭部聲明對象

ViewController.h

#import "Player.h" 
@interface ViewController : UIViewController{ 
    __weak IBOutlet Player *player; 
} 

ViewController.m

-(void)update 
{ 
    if([player collision] == TRUE) 
    { 
     [player nextHead]; 
     [player drawTrail:@"green"]; 
    } 

} 
+0

你已經聲明瞭一個指向對象的指針?你是否在某處創建了對象並將其指定給指針? (你稱之爲'IBOutlet' ....它是否與界面生成器中的對象鏈接?) –

+0

似乎你的'player'是零。你確定你的'player'對象在xib或其他代碼中成功實例化了嗎? – imnosov

+0

如何在ViewController.h中創建類的對象並在ViewController.m中調用該對象? – Nasser

回答

0

我有點不清楚您的設置,而是採取瞎猜,你是否試圖做到這樣的事情:

@interface ViewController: UIViewController 

@property (nonatomic, strong) IBOutlet Player *player; 
@property (nonatomic, strong) NSTimer *updateTimer; 

@end 

@implementation 

- (void)viewDidLoad { 
    // fire time 10 times a second to call update 
    _updateTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 
          target:self 
          selector:@selector(update) 
          userInfo:nil 
          repeats:YES]; 
} 

-(void)update 
{ 
    if([player collision] == TRUE) 
    { 
     [player nextHead]; 
     [player drawTrail:@"green"]; 
    } 

}