2011-11-02 72 views
1

我正在閱讀Big Nerd Ranch編寫的「Objective-C Programming」一書,但我不確定這種區別。Objective-C函數和Objective-C方法有什麼區別?

上下文:NSLog()是一個Objective-C函數(不是方法!),其工作方式與printf()非常相似。然而,在NSLog()中,格式字符串實際上是NSString的一個實例。

+1

重複http://stackoverflow.com/questions/6672352/objective-c-difference-between-functions-and-methods –

回答

7

A 方法只是一個函數,它定義爲的一部分。一個普通的函數,如NSLogprintf,不屬於一個類。

2

沒有「Objective-C函數」這樣的東西。 NSLog是一個函數,與庫中的任何其他標準函數相同,它恰好採用Objective-C對象,但這些只是指針,因此它們可以很好地與C代碼交互。 NSLog沒有什麼特別的。

另一方面,方法是Objective-C類的一部分。

1

方法屬於類&對象,並通過消息傳遞調用。函數沒有附加到特定的類或對象,並且完全按照它們在C中的工作方式工作。

1

Obj-C中的函數沒有針對特定類作用域,而方法被作用於類。