我正在使用Objective-C创建一个Rock Paper Scissors游戏,目前我遇到了从一个View Controller到另一个View Controller的整数问题。
我正在使用实用程序应用程序模板,我使用FlipsideViewController作为一个区域来设置最好的轮次(最好的3,5,7等)。但是,我无法将该整数带回MainViewController以将其用于使用。我阅读了关于这个主题的其他问题,但无法使其发挥作用。
这是FlipSideViewController.h文件中的协议
@class FlipsideViewController;
@protocol FlipsideViewControllerDelegate
- (void)addItemViewController: (FlipsideViewController *)controller didFinishEnteringItem: (int)rounds;
@end
以下是按下按钮以完成回合量时发生的操作
- (IBAction)submitBOO:(id)sender {
int rounds = 0;
rounds = _textField.text.intValue;
if (rounds % 2 ==0){
_labelBOO.text = @"Pick an odd number!";
}
else
[self.delegate addItemViewController:self didFinishEnteringItem:rounds];
}
MainViewController.m中的按钮切换到FlipsideViewController
- (IBAction)beginGame:(id)sender {
FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideViewController" bundle:nil];
controller.delegate = self;
controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controller animated:YES];
}
答案 0 :(得分:5)
声明int的属性不同于声明像NSNumber或NSString这样的对象。
您需要做的就是将其添加到标题中:
@property int someInt;
并在您的实施中合成。您不需要释放此属性,因为它不是真正的对象。它没有任何保留。如果你在ARC,你无论如何也不必担心。
如果这不能回答您的问题,请发布您尝试过的内容(即提供一些代码供您使用),您可能会得到更明智的答案。更好的问题=更好的答案。
限定词strong / weak不适用于int或其他原始数据类型,但如果你的目标是iOS4,你仍然可以使用(nonatomic)
,也可以使用(unsafe_unretained)
。