Question

it has been a while since I did anything in ObjC. I am sure the mistake is trivial but I can't seem to find it.

I created a class called Game with the following .h file:

#import <Foundation/Foundation.h>

@interface FSGame : NSObject

@property NSInteger numberOfGames;

@end

In the implementation file of one of my view controllers, a method then uses the user's selection from a segm. control to determine the number of games:

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);

The NSLog returns: Games: 0; index: 2

I have the same issue with two other classes I created. I grab text from a UITextField and the NSLog displays it correctly so I know I am actually able to get the user's input - it just wont store it as an ivar.

This must be something really obvious. Any pointers?

Was it helpful?

Solution

You create the Game object:

Game *game;

But you should create NSGame instead and you need to allocate and initialise it as well:

FSGame *game = [[FSGame alloc] init];
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top