На моей игровой доске (которая называется GameViewController) у меня есть шесть мест (в xib), которые являются не чем иным, как подклассами UIViews (поэтому у меня также есть файлы Seat.h и .m в моем проекте).Когда игровая доска инициализируется, эти места также создаются (благодаря XIB).Я хочу, чтобы места были загружены в NSMutableArray, чтобы я мог использовать их позже.По какой-то причине я не могу заставить его работать.
В моем заголовочном файле GameViewController я добавил NSMutableArray * seat;в качестве переменной экземпляра и включенного @class Seat;выше объявления интерфейса.
В моем методе GameViewController для awakeFromNib у меня есть места = [[NSMutableArray arrayWithCapacity: 6] retain];Поэтому массив должен быть инициализирован при появлении игровой доски.
Затем в заголовочном файле Seat я включил контроллер GameViewController *;в качестве переменной экземпляра и включил @class GameViewController над объявлением интерфейса.Я также добавил и синтезировал свойство для GameViewController.
В методе Seake awakeFromNib у меня есть [controller registerSeat: self];
Это вызывает метод в моем GameViewController, который имеет только одинстрока: [места addObject: место];Это должно добавить место в массиве.Но по какой-то причине этот метод никогда не вызывается.Или, если это произойдет, я никогда не могу сказать.Когда я отлаживаю, фокус никогда не переходит к методу registerSeat, хотя места добавляются на доску.Я надеюсь, что все это имеет смысл.Если код нужен, я могу его предоставить.Это может быть проще сделать в любом случае.Что, вы парни, думаете?Я в тупике на данный момент.
Объявление метода выглядит следующим образом: - (void) registerSeat: (Seat *) seat;
GameViewController.h:
#import <UIKit/UIKit.h>
@class Seat;
@interface GameViewController : UIViewController {
NSMutableArray *seats;
}
- (void) registerSeat:(Seat *)seat;
@end
GameViewController.m
#import "GameViewController.h"
#import "Seat.h"
@implementation GameViewController
- (void)awakeFromNib {
seats = [[NSMutableArray arrayWithCapacity:6] retain];
}
- (void) registerSeat:(Seat *)seat {
[seats addObject:seat];
NSLog(@"seat has been registered");
}
@end
Seat.h:
#import <UIKit/UIKit.h>
@class GameViewController;
@interface Seat : UIView {
GameViewController *controller;
}
@property (nonatomic, retain) IBOutlet GameViewController *controller;
@end
Seat.m:
#import "Seat.h"
#import "GameViewController.h"
@implementation Seat
@synthesize controller;
- (void) awakeFromNib {
[controller registerSeat:self];
}
@end