0

我在将值分配给字符串然后将它们取回时遇到问题。该字符串是一个类的属性,因为我需要将它传递给其他视图控制器。(我已经尝试过 Core Data,但它也没有工作,这似乎更简单。)

字符串的类是这样的:

.h    
@interface GameInformation : NSObject

@property (nonatomic, retain) NSString *word;
@property (nonatomic, retain) NSString *mode;

@end

.m
@implementation GameInformation

@synthesize mode = _mode;
@synthesize word = _word;

@end

很简单。应用委托中的相关代码:

GameInformation *gameInfo = [GameInformation alloc].init;
optionsView.gameInfo = gameInfo;
oneBox.gameInfo = gameInfo;
twoBox.gameInfo = gameInfo;

依此类推,直到我涵盖了所有控制器。选项视图是我设置字符串值并测试这些值的地方。

GameInformation *info = [self gameInfo];
UISegmentedControl *selectMode = [self mode];
UISegmentedControl *gameWord = [self word];
if (selectMode.selectedSegmentIndex == 0)
{
    info.mode = @"regular";
} else if (selectMode.selectedSegmentIndex == 1) {
    info.mode = @"wordTap";
}
if (gameWord.selectedSegmentIndex == 0)
{
    info.word = @"regular";
} else if (gameWord.selectedSegmentIndex == 1) {
    info.word = @"hat";
} else if (gameWord.selectedSegmentIndex == 2) {
    info.word = @"dog";
} else if (gameWord.selectedSegmentIndex == 3) {
    info.word = @"book";
} else if (gameWord.selectedSegmentIndex == 4) {
    info.word = @"bus";
} else if (gameWord.selectedSegmentIndex == 5) {
    info.word = @"cup";
} else if (gameWord.selectedSegmentIndex == 6) {
    info.word = @"pig";
}

NSLog(@"%@", info.mode);
NSLog(@"%@", info.word);

当这些被传递时,日志显示为空。我试过 [info setWord:@"regular"]; 和 [info setMode@"regular"]; 但那些也没有用。

我还没有尝试使用一盒、两盒等控制器中的字符串,因为测试返回 null。

所以。我究竟做错了什么?还是我在叫错树?而且,就像我之前说的,尝试为此使用核心数据是行不通的,这似乎是一种更简单的方法。

提前致谢!

编辑:谢谢大家的快速评论!我在信息上做了一个 NSLog,它确实是空的。我还将声明更改为复制而不是保留,并更改了 alloc 语句中的点表示法。alloc 语句位于应用程序委托的 didFinsihLaunchingWithOptions 中。那是错误的地方吗?

再次感谢您的帮助!

4

0 回答 0