私は現在、iPhone 用の最初のアプリに取り組んでいます。ほぼ完了していますが、メモリ管理などに問題があります。私は Java が得意で、Objective C を学習してまだ 4 日しか経っていないことを覚えておいてください。
したがって、正確な問題はこの領域にあります (アスタリスクの行の間)。注: すべてのコードは、重要な場合は大きなゲーム ループ内にあります。
else
{
***********************************
NSString *rand = [NSString stringWithFormat:@"%@", randNumberS];
while(lastTime + interval >= currentTime)
{
!!!!!!!!!NSString *user = [NSString stringWithFormat:@"%@", userText];
if([user isEqualToString: rand])
{
***********************************
score += 10;
randNumberS = nil;
timeToGenerateNum = true;
bottomClear = true;
break;
}
else
{
//NSLog(@"%@ != %@, %i", userText, randNumberS, score);
}
}
NSLog(@"Game Over! Your score was %i!", score);
}
}
ゾンビを有効にする前に実行するたびに(注:コードは数秒間実行されました)、Thread 6: Program received signal: "EXC_BAD_ACCESS"
「!」でマークされた行に. ゾンビを有効にした後、数秒間実行された後、動作が停止-[CFString respondsToSelector:]: message sent to deallocated instance 0x11168440
し、コンソールにメッセージが表示されます。また、「!」で同じ行にフラグを立てます。
これらの両方を調べましたが、どちらもメモリ管理が不十分であることを示しています。NSString オブジェクトを解放しようとしましたが、プログラムでオブジェクトを解放できません (注: このエラー メッセージが表示されます"release" is unavailable: not available in automatic reference counting mode
)。
どんな助けでも大歓迎です、ありがとう!
編集:
userText はさまざまなメソッドで使用されますが、主にこのメソッドで使用されます。
-(IBAction)button1Clicked:(id)sender
{
if(userText == nil)
{
userText = [NSString stringWithFormat:@"%i", 1];
}
else
{
userText = [NSString stringWithFormat:@"%@%i",userText , 1];
}
bottomLabel.text = userText;
NSLog(@"Test 1");
}