我有一个json字符串:
{"1":{"homeTeam":"Home01","awayTeam":"Away01","homeScore":0,"awayScore":0,"gameID":1},"2":{"homeTeam":"Home11","awayTeam":"Away11","homeScore":0,"awayScore":0,"gameID":2},"3":{"homeTeam":"Home21","awayTeam":"Away21","homeScore":0,"awayScore":0,"gameID":3}}我想把它变成一个Objective-C类:
#import <Foundation/Foundation.h>
@interface ScoreKeeperGame : NSObject {
}
@property (nonatomic, retain) NSString *homeTeam;
@property (nonatomic, retain) NSString *awayTeam;
@property (nonatomic, assign) int homeScore;
@property (nonatomic, assign) int awayScore;
@property (nonatomic, assign) int gameID;
- (id) init: (NSString *) homeTeam
awayTeam: (NSString *) awayTeam;
- (id) init: (NSDictionary *) game;
@end我通过NSDictionary " game“( json字符串表示一个哈希图,所以第一个游戏是)传入了json:
{"homeTeam":"Home01","awayTeam":"Away01","homeScore":0,"awayScore":0,"gameID":1}当我尝试使用这个类时:
#import "ScoreKeeperGame.h"
@implementation ScoreKeeperGame
@synthesize homeTeam=_homeTeam, awayTeam = _awayTeam, homeScore = _homeScore, awayScore = _awayScore, gameID = _gameID;
- (id) init: (NSString *) homeTeam
awayTeam: (NSString *) awayTeam
{
self = [super init];
self.homeTeam = homeTeam;
self.awayTeam = awayTeam;
NSLog(@"away: %@", awayTeam);
return self;
}
- (id) init: (NSDictionary *) game
{
self = [super init];
if(self)
{
self.homeTeam = [game objectForKey:@"homeTeam"];
self.awayTeam = [game objectForKey:@"awayTeam"];
self.awayScore = (int) [game objectForKey:@"awayScore"];
self.gameID = [game objectForKey:@"gameID"];
NSLog(@"game awayScore: %d", self.awayScore);
NSLog(@"game gameID: %@", [NSNumber numberWithInt:self.gameID]);
}
return self;
}
@endawayScore和gameId打印为大数字(可能是指针)?
我试过了
self.awayScore = [NSNumber numberWithInt: [game objectForKey:@"awayScore"]];但这似乎也不起作用。
如何从游戏对象中获取int的值?
po game产生:
{
awayScore = 0;
awayTeam = Away01;
gameID = 1;
homeScore = 0;
homeTeam = Home01;
}谢谢!
发布于 2011-08-06 12:49:55
您必须首先将其作为NSNumber提取出来。
NSNumber *myNum = [game objectForKey:@"awayScore"];
self.awayScore = [myNum intValue];多!
发布于 2011-08-06 12:52:03
如果想要从JSON响应中获取整数值,可以尝试执行此操作
self.awayScore = [NSNumber numberWithInt: [[game objectForKey:@"awayScore"] intValue]];因为您的响应将是nsstring。
发布于 2013-04-28 00:21:30
IOS6.0,现在很简单[游戏@“awayScore”intValue]
https://stackoverflow.com/questions/6964813
复制相似问题