2014-02-27 222 views
0

实现的接口就像函数声明(在头文件中)到函数定义一样? 如果我没有在接口中列出所有已经实现的方法,该怎么办?什么是实例变量呢?Objective-c接口和实现

回答

2

是的接口和实现可以被认为类似于头和定义。

如果您没有列出一些已实施的方法,您将无法从其他类中使用它们。此外,如果他们没有在@interface部分定义,编译器会如果您尝试使用已在呼叫

@implementation 

- (void) functionA 
{ 
    [self functionB]; // error, because 'so far' functionB has not been defined 
} 

- (void) functionB 
{ 
} 

编辑之后已经实现的功能抱怨:参见下面马丁的评论。 END EDIT

如果您没有定义实例变量,并且您使用它们,则会出现错误。您使用的任何变量必须在本地或在类中定义。

+0

你是什么意思由本地定义的实例变量? –

+4

当前编译器版本不*要求实现文件中的方法的前向声明。 –

+0

@ Naughty.Coder不,我的意思是一个变量必须在本地定义到函数或执行块(意思是它不是一个实例变量),或者是类中的一个实例变量。 – Merlevede

1

回答您的问题: 接口到实现就像函数声明(在头文件中)到函数定义?

如果我没有在接口列表中的所有方法,这些方法已经实现了?什么是实例变量呢?

这些方法将被视为可在该特定类中访问的私有方法和变量。

在您的接口中声明的变量(如1.中的变量)在实例化MyClass的对象的其他类中可见。 2.中声明的变量只能在MyClass中可见。下面是你应该阅读:我想这些都将帮助你在更深入的了解这些事情http://developer.apple.com/library/ios/#referencelibrary/GettingStarted/Learning_Objective-C_A_Primer/

http://iosmadesimple.blogspot.in/2012/11/interface-and-implementation.html

+0

无法在Objective-C中声明私有方法。这些方法可以通过'[object performSelector:@selector(methodName :)];'从任何知道对象的类中访问。 –