首先让我告诉你我是一个完全的 Objective-C 初学者。这是我的问题:
我有一个 NSMutableArray 存储对象,(玩家)有玩家的名字和他/她的分数。
我可以使用 将对象添加到数组中addObject
,但是在遍历这个数组时遇到了麻烦。我就是这样做的:
// Get the reference to the array
NSMutableArray *myarray = [delegate getArray];
// Create a numerator
NSEnumerator *e = [myarray objectEnumerator];
id object;
while (object = [e nextObject])
{
[object printPlayer];
}
方法 printPlayer 属于 Player 类,它只打印名称和分数。
问题是当我在数组中有三个播放器并且我试图打印内容时,它在 printPlayer 方法中遇到了这个错误:
Thread 1: EXC_BAD_ACCESS(code=1, address=0x0000008)
奇怪的是,如果我使用NSLog(@"%@", object);
而不是[object printPlayer];
它会打印对对象的引用并且不会出现任何错误。
任何人都可以指出我尝试使用时可能出现的问题[object printPlayer]
干杯
更新 1: 这是我的 printPlayer 方法:
-(void) printPlayer
{
NSLog(@"\n\nName: %@\nScore: %d", playerName, playerScore);
}
更新 2:
播放器.h:
@interface PROGPlayer : NSObject
@property (nonatomic, assign) NSString *playerName;
@property (nonatomic, assign) int playerScore;
-(id) init: (NSString *) n;
-(void) printPlayer;
@end
播放器.m:
#import "PROGPlayer.h"
@implementation PROGPlayer
@synthesize playerName;
@synthesize playerScore;
/**
* Player's class constructor
* @param n Player's name
* @param s Player's score
*/
-init: (NSString *) n
{
if (!(self = [super init])) return nil;
else
{
playerName = n;
playerScore = 0;
}
return self;
}
-(void) printPlayer
{
NSLog(@"\n\nName: %@\nScore: %d", playerName, playerScore);
}
@end