【发布时间】:2013-03-05 23:25:58
【问题描述】:
我正在尝试掌握 Objective-C,过去曾使用 Java 和 C 进行过编程。
我有一个类,Unzip,它包含以下方法:
- (void)unzipFile:(NSString*)fileName
我正在尝试从 AppDelegate 类调用此方法,以响应按钮单击,使用以下代码创建 Unzip 实例并使用字符串值调用 unzipFile 方法,但没有任何反应。
- (IBAction)unzipIt:(id)sender {
NSLog(@"Unzip clicked");
NSString *zipString = [_testField stringValue];
NSLog(@"Calling unzip with the string %@", zipString);
Unzip *unzip;
[unzip unzipFile:(zipString)];
}
实际的按钮点击有效,因为两个初始 NSLog 出现了,但没有进一步发生。该方法很好,因为我已经在其他地方进行了测试,因此至少应该发生 something。谁能告诉我哪里出错了?
感谢您的宝贵时间。
【问题讨论】:
-
您没有创建实例,只是声明了一个指向实例的指针。改为使用
Unzip *unzip = [[Unzip alloc] init];来实际实例化一个。 -
你从不初始化解压缩。这在 java 或 C 中也行不通
-
@Daij-Djan 除了在 Java 或 C 中,至少会出现运行时错误。
-
@MikeD 是的。 Objective-C 不做 nullPointerExceptions
-
@Daij-Djan 只是指出 OP 的不同之处。
标签: objective-c macos class methods call