将值从一个类传递到另一个类

时间:2011-04-06 15:39:51

标签: iphone uitableview nsstring nsmutablearray cross-reference

我正在设计一个老虎机项目,其中包含高分页面的第二个视图。在大多数情况下,除了将赢家从老虎机传递到高分页面之外,一切都正常。这是我在老虎机中的方法中的代码:

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];
}

以下是HighScorePage中的addNewHighScore方法:

-(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 :(得分:0)

如果你问我,你的高分数据应该是每个人都可以访问的模型类,例如单身人士。

当您的播放器获胜时,您的插槽ViewController应在此模型类中插入新的高分,然后使用键值观察或通知,高分视图应自行更新。

答案 1 :(得分:0)

在您的评论中,您已经询问如何将字符串从一个类传递到另一个类,这是答案 -

如果要将字符串值从类B传递到类A,则在类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-SW1 enter code here