【问题标题】:Cannot make new class无法创建新课程
【发布时间】:2013-08-18 03:33:33
【问题描述】:

每次我尝试创建一个新类时,我都会遇到一堆错误,甚至没有编写任何代码。

注册.h

#import <UIKit/UIKit.h>
@interface register : UIViewController
@end

给出错误:

预期标识符
预期标识符或'('

注册.m

#import "register.h"
@interface register ()
@end
@implementation register
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

@实现寄存器

预期标识符
预期标识符或'('

- (void)viewDidLoad- (void)didReceiveMemoryWarning 给:

缺少方法声明的上下文

@end 给出:

@end 必须出现在 Objective-C 上下文中

每次我在不编写任何代码的情况下创建一个新类时都会发生这种情况。

【问题讨论】:

  • 这种情况发生在每次你创建一个新课程时?即使您将其命名为 register 以外的其他名称?
  • register 是 C 中的一个关键字。(这是遵循 C++/Objective-C 编码约定并始终使用前导大写字母命名类的一个很好的理由。)
  • 谢谢,我什至没想过要换个名字!
  • 您的命名约定很差。您应该使用更好的命名约定,我真的向您推荐 Apple 指南:developer.apple.com/library/ios/documentation/Cocoa/Conceptual/…

标签: iphone ios objective-c xcode


【解决方案1】:

您不能使用保留关键字命名类、变量、函数等。以下是 Objective-C 关键字列表:http://cupsofcocoa.com/2010/09/09/reserved-keywords/

要解决您的问题,请将您的类命名为 register 以外的名称(这不是保留关键字)。你甚至可以将它命名为Register,它会编译。

【讨论】:

  • 使用代码约定。如果您是 UIViewController 的子类,请将您的类命名为 RegisterViewController
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多