私はObjective-Cの初心者です。これは私の問題です:NSMutableArrayをトラバースするには?
私は、オブジェクトを格納する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方法。私はNSLog(@"%@", object);
代わりの[object printPlayer];
それプリントを使用している場合不思議
Thread 1: EXC_BAD_ACCESS(code=1, address=0x0000008)
:
私は、アレイ内の3人の選手がいると私はコンテンツを印刷しようとしていたときに問題があるが、それは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
プロジェクト内に自動参照カウントを使用していますか? –
あなたの質問に答えません..一般的な提案ですが、 http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/objectivec/Chapters/ocFastEnumeration.html – Neo
printPlayerコード。投稿できますか? –