Итак, я следую этой учебной книге по Xcode: Iphone и Ipad Game Development for Dummies. Это хорошая книга, но есть кое-какие недостатки. Большую часть времени я могу обойти эти недостатки, но теперь я наткнулся на то, что не могу исправить. Даже их сайт или контакты не знают ответа.
Я пытаюсь сделать игру с машинами и прочим. Но проблема заключается в главном меню. Я уже сделал кнопки с режимом пользовательских кнопок. И использовал IbActions, чтобы заставить их работать (фактически, «Новая игра» - единственная кнопка, которая работает сейчас, потому что у нее уже есть сценарий). Но теперь я должен сделать IBOutlets, чтобы дать им анимацию. Книга сказала мне, чтобы использовать QuartzCore.framework. Теперь проблема в том, что когда я пытаюсь его построить, я получаю эту ошибку: в интерфейсе не найдено объявление свойства 'newGameButton'.
Это мой сценарий.
Заголовочный файл:
#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
@interface MainMenuViewController : UIViewController {
//This has changed
@property(nonatomic,retain) IBOutlet UIButton* newGameButton;
@property(nonatomic,retain) IBOutlet UIButton* statsButton;
@property(nonatomic,retain) IBOutlet UIButton* settingsButton;
CAKeyframeAnimation* popAnimation;
}
-(IBAction) newGame:(id)sender;
-(IBAction) showStats:(id)sender;
-(IBAction) showSettings:(id)sender;
@end
И файл .m (это называется имплантацией?):
#import "MainMenuViewController.h"
#import "TrafficAppDelegate.h"
#import "TrafficViewController.h"
@implementation MainMenuViewController
-(IBAction) newGame:(id)sender{
TrafficViewController* traffic = [[TrafficViewController alloc] initWithNibName:@"TrafficViewController" bundle:nil];
[self.navigationController pushViewController:traffic animated:NO];
}
-(IBAction) showStats:(id)sender{
}
-(IBAction) showSettings:(id)sender{
}
@synthesize newGameButton, statsButton, settingsButton;
-(void)viewDidLoad{
[super viewDidLoad];
popAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"];
popAnimation.keyTimes = [NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0], [NSNumber numberWithFloat:0.7], [NSNumber numberWithFloat:1.0], nil];
popAnimation.values = [NSArray arrayWithObjects: [NSNumber numberWithFloat:0.01], [NSNumber numberWithFloat:1.1], [NSNumber numberWithFloat:1.0], nil];
[popAnimation retain];
}
-(void)popView:(UIView*)view{
[view setHidden:NO];
[[view layer] addAnimation:popAnimation forKey:@"transform.scale"];
}
-(void)viewWillAppear:(BOOL)animated{
[popAnimation setDuration:0.3];
[newGameButton setHidden:YES];
[statsButton setHidden:YES];
[settingsButton setHidden:YES];
[self performSelector:@selector(popView:) withObject:newGameButton afterDelay:0.25];
[self performSelector:@selector(popView:) withObject:statsButton afterDelay:0.3];
[self performSelector:@selector(popView:) withObject:settingsButton afterDelay:0.35];
}
@end
Теперь я сначала подумал, что они не подключены к кнопкам в конструкторе интерфейса пользователя. Но это тоже не сработало. Я пытался переделать весь сценарий. Я попытался перезагрузить скрипт в Xcode. Я даже пытался сделать свою собственную версию. У меня не осталось вариантов. Кто-нибудь знает, что не так с моим скриптом?