“方法定义不在@implementation上下文中”?

时间:2010-05-24 22:04:21

标签: objective-c

我把它放在X代码中:

- (void)viewDidLoad {
    [super viewDidLoad];
 NSString *path = [[NSBundle mainBundle] pathForResource:@"DrinkArray" ofType:@"plist"];
 NSMutableArray* tmpArray = [[NSMutableArray alloc] initWithContentsOfFile:path];
 self.drinks = tmpArray;
 [tmpArray release];
    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem;
}

它在第一行说明了这一点:

"Method Definition not an @implementation context"

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

你在方法的开头放了“@implementation”,在它们的末尾放了“@end”吗? Objective-C就像一个将代码转换为C的预处理器,因此需要知道何时对Objective-C方法进行特殊处理。

您似乎正在尝试创建一个新的ViewController,但您正在像C程序员那样,而不是Objective-C程序员。您需要定义ViewController类的子类,这意味着您需要一个“@interface”部分和一个“@implementation”部分。

你最好的攻击计划可能是告诉X-Code添加一个新文件,并在模板选择器对话框中告诉它创建一个UIViewController的子类。这将正确地构造代码。您还可以在线找到许多ViewController教程。

答案 1 :(得分:0)

您将该方法放在源文件中的错误位置。找一行@implementation,另一行说@end。把你的方法放在那里。

答案 2 :(得分:0)

我不小心使用了:

 #include <stdlib.h>
有一次。我用了

#import <stdlib.h>

它看起来效果更好。

我知道你可能没有在你的特定情况下这样做,但我认为这可能有助于将来查看这个问题的其他人。