まず、私はObjective-Cの完全な初心者です。これが私の問題です:
オブジェクトを格納するNSMutableArray(Player)があり、プレーヤーの名前とスコアがあります。
を使用して配列にオブジェクトを追加できますが、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クラスに属しており、名前とスコアを出力するだけです。
問題は、配列に3人のプレーヤーがいて、コンテンツを印刷しようとすると、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:
Player.h:
@interface PROGPlayer : NSObject
@property (nonatomic, assign) NSString *playerName;
@property (nonatomic, assign) int playerScore;
-(id) init: (NSString *) n;
-(void) printPlayer;
@end
Player.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