OC語言中的方法和函數是有差別的:類内部叫方法,單獨定義的叫函數,定義的格式也不同
類方法:+ (void) 方法名、對象方法:- (void) 方法名、函數:void 函數名(參數清單)
1 #import <Foundation/Foundation.h>
2
3 void test();//test函數的聲明
4
5 //類Person的聲明
6 @interface Person : NSObject
7 + (void)test;//類方法
8 - (void)test;//對象方法
9 - (int)sumWithNum1 : (int)num1 andNum2 : (int)num2;//帶參數對象方法的規範定義
10
11 @end
12
13 //類Person的實作
14 @implementation Person
15 + (void)test
16 {
17 //類方法中可以通過建立對象調用對象方法
18 Person *pp = [Person new];
19 [pp test];
20
21 test();
22 NSLog(@"this is +test");
23 }
24 - (void)test
25 {
26 test();
27 //[Person test];//對象方法中可以調用類方法
28 NSLog(@"this is -test");
29 }
30 - (int)sumWithNum1 : (int)num1 andNum2 : (int)num2
31 {
32 return num1 + num2;
33 }
34 @end
35
36
37 int main()
38 {
39
40 Person *p = [Person new];
41 [Person test];
42 [p test1];
43 }
44
45 //函數的實作
46 void test()
47 {
48 NSLog(@"這是函數");
49 }
結論:1->類方法名,對象方法名,函數名可以一樣,他們的調用者不同是以互不影響
2->函數是不可以調用類方法或者對象方法的
3->函數可以被類方法和對象方法調用,類方法内部還可以通過建立該類的對象調用對象方法