1

我正在用 Objective-C 创建一个石头剪刀布游戏,目前我遇到了将整数从一个视图控制器带到另一个视图控制器的问题。

我正在使用实用程序应用程序模板,并且我正在使用 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];

}
4

1 回答 1

5

为 int 声明属性与为 NSNumber 或 NSString 之类的对象声明不同。

您需要做的就是将其添加到您的标题中:

@property int someInt;

并在您的实现中综合。您不需要释放此属性,因为它不是真正的对象。它没有任何保留。而且,如果您在 ARC 中,则无论如何都无需担心。

如果这不能回答您的问题,请发布您尝试过的内容(即给我们一些代码来使用),您可能会得到更明智的答案。更好的问题=更好的答案。

限定符强/弱不适用于 int 或其他原始数据类型,但您仍然可以明智地使用,并且如果您的目标是 iOS4 (nonatomic),也可能如此。(unsafe_unretained)

于 2012-07-14T19:23:10.353 回答