为什么我不能为我的ivar分配值?

时间:2014-04-01 14:49:12

标签: ios objective-c class instance-variables

自从我在ObjC做了一些事以来,已经有一段时间了。我确信错误是微不足道的,但我似乎无法找到它。

我使用以下.h文件创建了一个名为Game的类:

#import <Foundation/Foundation.h>

@interface FSGame : NSObject

@property NSInteger numberOfGames;

@end

在我的一个视图控制器的实现文件中,一个方法然后使用用户从segm中选择。控制以确定游戏数量:

FSGame *game;

// Number of Games
NSInteger index = _segCtrlNumberGames.selectedSegmentIndex;
if (index == 0) {
    game.numberOfGames = 1;
} else if (index == 1) {
    game.numberOfGames = 3;
} else {
    game.numberOfGames = 5;
}

NSLog(@"Games: %i; index: %i", game.numberOfGames, index);

NSLog返回:Games: 0; index: 2

我和我创建的另外两个类有同样的问题。我从UITextField抓取文本,NSLog正确显示它,所以我知道我实际上能够得到用户的输入 - 它只是不会将它存储为ivar。

这一定是非常明显的事情。有什么指针吗?

1 个答案:

答案 0 :(得分:2)

您创建了Game对象:

Game *game;

但你应该创建NSGame,你也需要分配和初始化它:

FSGame *game = [[FSGame alloc] init];