2012-04-29 1 views
0

스탠포드 클래스 CS193P, iPhone 프로그래밍의 2010 버전을 사용 중입니다. 과제 2에서는 과제 1에서 만든 계산기 앱을 개선하고 있습니다. 나는 거의 끝났어 보이지만 인터페이스에있는 변수 ("x")를 누를 때 응용 프로그램이 중단됩니다.NSSet에 객체를 추가하려고 할 때 iPhone 계산기 앱이 작동을 멈 춥니 다

제한된 디버깅 기술을 사용하여 문제를 추적했습니다. 문제는 "(NSSet) variablesInExpression : (id) anExpression"메서드에서 발생합니다.

+ (NSSet *)variablesInExpression:(id)anExpression 
{ 
NSMutableSet *setOfVariables = [[NSSet alloc] init]; 
for (NSString *str in anExpression) { 
    if ([str hasPrefix:VARIABLE_PREFIX]) { 
     [setOfVariables addObject:str]; 
    } 
} 
[setOfVariables autorelease]; 
return setOfVariables; 
} 

나는 줄

[setOfVariables addObject:str]; 

응용 프로그램 충돌에 도착하면. 나는 2 시간 동안 그것을 이해하려고 노력하고 있었다, 제발 도와주세요! 'anExpression'의 전체 값 목록을 보려면 XCode에 방법이 있습니까?

답변

1

당신이 불변 NSSet 클래스의 인스턴스를 생성 가변 세트로 당신의 변수 선언 있지만 - 당신은 NSMutableSet 인스턴스를 생성해야합니다 :

NSMutableSet *setOfVariables = [[NSMutableSet alloc] init]; 
+0

어머 큰 OOP의 실수있다! 고맙습니다! – 23ChrisChen