通过类比,在Eclipse IDE和许多其他人中,当我声明类的一些私有属性时,我可以自动生成getters和setters方法。例如,使用大约20个属性进行声明并且最终创建了所有方法,这非常有用。
我们在xCode IDE中有相同的功能,我的意思是......当我在“.h”中编写一些声明方法时,我是否可以在“.m”中自动声明....
e.g:
在“.h”中,代码如下:
- (NSString *)loadMessageLabelFr:(id)sender;
在“.m”中,使用菜单功能生成代码“所需”:
- (NSString *)loadMessageLabelFr:(id)sender{
}
答案 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,对象和文件组织完全不同
您不必定义方法,它仍然是一个有效的用例。有些类没有特定的方法定义,并处理doesNotRecognizeSelector:
您可以在运行时添加方法定义
您可以在多个实现文件中的一个标头中定义方法。
由于这些原因(以及许多其他原因),在实现文件中生成方法头可能比专业人员更有利。
最简单的Xcode解决方案
.h
到.m
的复制粘贴方法标题。- (BOOL)
将允许您更快地自动填充。答案 2 :(得分:0)
您如何定义实例变量?
你问题的答案(例如变量)是'不,但你真的需要它们'...... 使用属性和编译期间为您创建的访问器方法。实际上,您需要明确地实现非常少的访问器方法。
对于公共方法,答案是否定的,但是,您可以复制方法定义,然后只需添加括号,这样就不需要做很多工作(甚至不需要删除分号)。 / p>
此外,这适用于变量和公开定义的方法,请开始输入:
- a
和Xcode将为您提供适当方法名称的自动完成功能。