Передача значений из одного класса в другой - PullRequest
0 голосов
/ 06 апреля 2011

Я разрабатываю проект игрового автомата, у которого есть второй вид страницы рекордов. По большей части все работает, кроме перехода победителя из игрового автомата на страницу рекордов. Вот мой код в методе в игровом автомате:

if(win == YES)  {
    NSString *msg = nil;
    if(playerField.text.length > 0) {
        msg = [[NSString alloc] initWithFormat:@"%@", playerField.text];
    }
    NSLog(@"DEBUG");
    [(HighScorePage *)self.view addNewHighScore:msg];
    [self performSelector:@selector(playWinSound) withObject:nil afterDelay:.5];
    [msg release];
}

А вот метод addNewHighScore в HighScorePage:

-(void)addNewHighScore:(NSString *)player   {
NSMutableArray *tempArray = [[NSMutableArray alloc] init];

int i = 0;
for (NSArray *count in dynPlayerArray) {
    [tempArray addObject:[NSIndexPath indexPathForRow:i++ inSection:0]];
}
[tempArray addObject:player];
[[self highScores] beginUpdates];
[[self highScores] insertRowsAtIndexPaths:(NSArray *)tempArray withRowAnimation:UITableViewRowAnimationNone];
[[self highScores] endUpdates];

[tempArray release];    

}

Все еще новичок в этом, поэтому дайте мне знать, что вы думаете! Спасибо!

Ответы [ 2 ]

0 голосов
/ 07 апреля 2011

В вашем комментарии вы спросили, как передать строку из одного класса в другой, вот ответ -

Если вы хотите передать строковое значение из класса B в класс A, то в файле класса .h создайте экземпляр NSMutableString и определите его как свойство как -

NSString *stringVar;

@property (nonatomic, retain) NSString *stringVar;

and also synthesize this property in class A's .m file for setter & getter as-

@ synthesize stringVar;

затем в классе B получите доступ к этой строке как свойству класса A и присвойте, какое значение вы хотите передать из класса B в класс A.

Надеюсь, это поможет вам. Также для получения дополнительной информации о собственности смотрите -

http://developer.apple.com/library/Mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProperties.html#//apple_ref/doc/uid/TP30001163-CH17-SW1enter код здесь

0 голосов
/ 06 апреля 2011

Если вы спросите меня, ваши данные High Score должны быть в классе модели, к которому может иметь доступ каждый, например, синглтон.

Когда ваш игрок выигрывает, ваш слот ViewController должен вставить новый High Score в этот класс.класс модели, а затем, используя ли Наблюдение значения ключа или Уведомления, представление High Score должно обновиться само.

...