목표 -C : int를 선언하고 유지하는 방법은 무엇입니까?
여기에 내 코드가있다 :@interface Game : Layer // this is from cocos2d
{
int maxSprites;
}
@implementation Game
-(void)initVariables
{
maxSprites = 18;
}
나중에
NSLog(@" maxSprites = %d ", maxSprites);
maxSprites = 2
마치 2 살인 것처럼 일하지 않아.
어떻게 가능하겠습니까? =)
APPLE + SHIFT + F는 maxSprites
변수를 다른 용도로 사용하지 않습니다.
다른 코드 예제를 살펴 봤는데 종종 getter와 setter를 사용하여 변수를 노출하고 있으며 @property
도 사용하고 있습니다. 내가 놓친 게 있니? 나는 Objective-C를 처음 접했을 뿐이다.
편집 : hrmph, 왜 -1 얻을거야?
감사합니다. Watchpoint를 수행하는 방법을 배우려고합니다.
그때까지, 나는 maxSprites에 대해 APPLE + SHIFT + F을 수행했다고 말하고 싶습니다. "Project, Textual, Contains, Ignore Case에서 결과가
Game.h: int maxSprites;
Game.m: maxSprites = 18;
Game.m: NSLog(@" maxSprites = %d", maxSprites);
Game.m: NSLog(@" maxSprites = %d", maxSprites);
Game.m: NSLog(@"maxSprites is at %p", &maxSprites);
Game.m: NSLog(@"maxSprites is at %p", &maxSprites);
Game.m: NSLog(@" maxSprites = %d", maxSprites);
Game.m: NSLog(@" maxSprites = %d", maxSprites);
Game.m: NSLog(@"maxSprites is at %p", &maxSprites);
Game.m: NSLog(@"maxSprites is at %p", &maxSprites);
변경된 위치를 감시 점을 사용하여 찾았습니다. 여기에 변경 :
Expression: “*(int *) 67379960”
New Value: 2
Old Value: 18
이 줄에 :
[self checkMatchBarAward:spriteTypeToAdd];
이상한? 그 함수는 아무것도하지 않습니다. maxSprites
편집 : - 왜 스스로 가치가 변하는지를 알아보기 위해 새로운 질문을 던질 것입니다. 도움을 주신 여러분, 고마워요 .
새로운 게시물이 올 것입니다. 여기로 가져 가라 : Objective-C: int value changing without cause
같은 방법으로 에러를 생성하는 방법을 볼 수 있습니까? – Chuck
안녕 척, 나는 NSD에게 "대답"을하고 녹색은 그를 표하고 싶다. 다른 스레드에서이 문제를 계속 진행합니다. http://stackoverflow.com/questions/1941686/objective-c-int-value-changing-without-cause – Jeremiah
원래 질문을 만족시켜주기 때문에이 문제를 계속 수행합니다. "어떻게 선언하고 유지합니까? int? " – Jeremiah