生成自动代码

时间:2013-04-12 15:55:27

标签: ios xcode uiview

通过类比,在Eclipse IDE和许多其他人中,当我声明类的一些私有属性时,我可以自动生成getters和setters方法。例如,使用大约20个属性进行声明并且最终创建了所有方法,这非常有用。

我们在xCode IDE中有相同的功能,我的意思是......当我在“.h”中编写一些声明方法时,我是否可以在“.m”中自动声明....

e.g:

在“.h”中,代码​​如下:

- (NSString *)loadMessageLabelFr:(id)sender;

在“.m”中,使用菜单功能生成代码“所需”:

- (NSString *)loadMessageLabelFr:(id)sender{

}

3 个答案:

答案 0 :(得分:3)

getter和setter由编译器为您的类属性隐式生成。例如。具有

@property int count;

含蓄地为您提供以下内容:

1)名为_count的ivar,用于存储属性的值。

2)吸气剂和定位器

- (int)count
{
    return _count;
}

- (void)setCount:(int)count
{
    _count = count;
}

此代码在编译时插入,因此您不会在.m文件中看到它。这很好,因为这样你的代码不会被琐碎的getter和setter弄得乱七八糟。如果你想让你的getter或setter做其他事情,而不仅仅是设置或返回一个值,你需要以通常的方式定义方法,例如:

- (void)setCount:(int)count
{
    NSLog(@"Count set to %d", count);
    _count = count;
}

答案 1 :(得分:1)

我知道你的意思 - 很多时候,在我的标题中声明了10个方法后,我希望它们以某种方式转移到我的实现文件中。

...然而

这不是Java,对象和文件组织完全不同

  1. 您不必定义方法,它仍然是一个有效的用例。有些类没有特定的方法定义,并处理doesNotRecognizeSelector:

  2. 中的方法调用
  3. 您可以在运行时添加方法定义

  4. 您可以在多个实现文件中的一个标头中定义方法。

  5. 由于这些原因(以及许多其他原因),在实现文件中生成方法头可能比专业人员更有利。

    最简单的Xcode解决方案

    1. .h.m的复制粘贴方法标题。
    2. 使用自动完成功能,写入标题的开头,例如- (BOOL)将允许您更快地自动填充。

答案 2 :(得分:0)

您如何定义实例变量?

你问题的答案(例如变量)是'不,但你真的需要它们'...... 使用属性和编译期间为您创建的访问器方法。实际上,您需要明确地实现非常少的访问器方法。

对于公共方法,答案是否定的,但是,您可以复制方法定义,然后只需添加括号,这样就不需要做很多工作(甚至不需要删除分号)。 / p>

此外,这适用于变量和公开定义的方法,请开始输入:

- a

和Xcode将为您提供适当方法名称的自动完成功能。