-3

我试图掌握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,但没有进一步发生。该方法很好,因为我已经在其他地方进行了测试,所以至少应该发生一些事情。谁能告诉我哪里出错了?

谢谢你的时间。

4

2 回答 2

3

你没有分配Unzip

Unzip *unzip = [[Unzip alloc] init];
[unzip unzipFile:zipString];

它不起作用但没有爆炸的原因是在 Objective C 中,向nil.

关于 Objective C 的更多概念,尤其是在使用 Nil部分。

于 2013-03-17T16:22:38.907 回答
0

你必须初始化你的unzip变量

Unzip *unzip = [[Unzip alloc] init];

还有一个捷径:

Unzip *unzip = [Unzip new];

这是等效的速记。

于 2013-03-17T16:20:54.893 回答