我在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];
}
最佳答案
声明一个int的属性与声明一个类似NSNumber或NSString的对象是不同的。
您需要做的就是将其添加到标题中:
@property int someInt;
并在您的实施中进行综合。您不需要释放此属性,因为它不是真正的对象。它没有任何保留。而且,如果您使用的是ARC,则无需担心。
如果这不能解决您的问题,请发表您尝试过的内容(例如,给我们一些代码来使用),您可能会得到更详尽的答案。更好的问题=更好的答案。
强/弱限定词不适用于int或其他原始数据类型,但是如果您的目标是iOS4,则明智的做法是使用
(nonatomic)
以及(unsafe_unretained)
。