릴리스 문구를 주석 처리하지 않으면이 프로그램이 충돌합니다. 나는 그것이 지나치다는 것을 알게되고 그것을 빨리 깨달았다. 하지만 좀비를 테스트하기 위해 NSZombiesEnabled = YES 및 CFZombieLevel = 16으로 설정하고 프로그램을 실행하고 예외를 throw하지 않습니다.다시 릴리스하는 문제와 좀비
무엇을 제공합니까? 나는 좀비를 켜는 것이 내게 무슨 doofus인지 말했을 것이다 ... 고쳐주지 마라.
#import "AppController.h"
@implementation AppController
-(IBAction)countCharacters:(id)sender {
//did a button do this?
if(![sender isKindOfClass:[NSButton class]]) {
NSLog(@"%@ is not a button", sender);
return;
}
//proceed
NSString *userString = [textField stringValue];
NSNumber *count = [NSNumber numberWithInt:[userString length]];
NSString *outputString = [NSString stringWithFormat:@"'%@' has %@ characters.",
userString, count];
//[userString release];
//[count release];
[labelField setStringValue:outputString];
//[outputString release];
}
@end
발신자를 - (IBAction) countCharacters :(NSButton *) 발신자로 변경하지 않는 이유는 무엇입니까? 그렇게하면 확인할 필요가 없습니다. GUI를 통해서만 호출되지 않는 한. – zneak
@zneak; 그건 말이되지 않습니다. 액션 메소드는 항상'- (IBAction) selector : (id) sender'입니다. 그리고 당신이 검사하는지 여부는 표적/행동이 어떻게 작동하는지에 대해 완전히 직각입니다. – bbum
@bbum; 그것은 의미가 있습니다. 명시 적으로 어떤 종류의 객체가 액션을 전송할 것으로 예상되는지 알려주면 Interface Builder에서 다른 유형의 객체에 액션을 할당하는 것을 불가능하게 만든다. 분명히 그가 원하는 것입니다. 나는 완전히 바보 같은 말을했을 때를 두 번 확인했고, 내가 그 말을 정확하게 묘사 한 것처럼 행동했다. – zneak