2012-03-06 44 views
0

ObjC for iPhone的語法看起來過於混亂。我確信這篇文章將幫助和節省不僅我的時間,而且還有那些開始與ObjC合作的人。適用於Java開發人員的基本Objective-C

  1. 如何在類中創建和調用函數?
  2. 如何在調用函數時傳遞參數,包括基元和對象?
  3. 如何創建一個全局變量(基元和對象),我可以在整個類中訪問? (我嘗試在.h類中聲明一個數組,並在ViewDidLoad方法中設置值並從其他方法訪問它,但它不起作用!)。
+3

所有這些問題已經在SO上解答。如有必要,請環顧四周,併發布更具針對性的問題。 – 2012-03-06 07:05:14

回答

0

cocoa dev cenral網站覆蓋基本。網絡上有很多ios博客。試着用谷歌搜索一個特定的主題,我相信你會得到很多教程或樣本。

3

我會盡量用例子來回答。

問:如何在類中創建和調用函數? A:幾乎和Java一樣。只是有點不同的語法。示例

//Java: 
private string exampleMethod { 
    return "it is an example"; 
} 
//somewhere in the code: 
System.out.println("example output: " + exampleMethod); 

//Objective-C : 
-(NSString)exampleMethod { 
    return @"it is an example"; 
} 
//somewhere in the code: 
NSLog(@"example output: %@", [self exampleMethod]); 

問:如何在調用函數時傳遞參數,包括基本類型和對象?

答:

//Java: 
private int calculateSum(int i1, int i2) { 
    return i1 + i2; 
} 
//somewhere in the code: 
int someInt = calculateSum(8, 23); 

//Objective-C : 
-(int)calculateSumOf:(int)i1 and:(int)i2 { 
    return i1+i2; 
} 
//somewhere in the code: 
int someInt = [self calculateSumOf:8 and:23]; 

傳遞的對象是完全一樣的原語:

NSNumber *myNumber = [NSNumber numberWithInt:23]; 
[self someMethodThatNeedsAnInt:8 andSomeRandomObject:myNumber]; 

問:我如何創建一個全局變量(原始和對象),我可以訪問所有在班上? (我嘗試在.h類中聲明一個數組,並在ViewDidLoad方法中設置值並從其他方法訪問它,但它不起作用!)。

答:如果你只需要訪問它在你的類,然後做你的.h(頭)文件類似的東西:

@interface YourClass : NSObject { 
    int itIsAnExampleOfIntVariable; 
    YourOtherClass *itIsAnExampleOfObjectVariable; 
} 

,不要忘了包括#import "YourOtherClass.h如果你正在使用它。之後,您可以在班級中使用這些變量。

希望它可以幫助

1

我真的,真的建議閱讀Objective-C的一本大書,但我會給你一個小抄的平均時間:

創建一個函數:

@interface ClassName 

- (void) methodName; 

調用從類實現的功能:

[self methodName]; 

調用來自不同類的功能:

ClassName* class = [[ClassName alloc] init]; 
[class methodName]; 

帶有參數的函數:

[self methodName:@"theArgumentStringBeingPassed"]; 

聲明類變量:

@interface ClassName 
{ 
    NSString* aStringVariable; 
} 
與參數

- (void) methodName:(NSString*)aStringArgument; 

調用函數次

訪問它的類實現:

@implementation ClassName 

- (id) init 
{ 
    aStringVariable = @"aString"; 
} 

合成getter和setter的變量:

@interface ClassName 
{ 
    NSString* aStringVariable; 
} 

@property (nonatomic, retain) NSString* aStringVariable; 

實施:

@implementation ClassName 

@synthesize aStringVariable; 

得到它:

self.aStringVariable 

進行設置:

self.aStringVariable = @"newString"; 

//OR 

[self setAStringVariable:@"newString"]; 

同樣,你肯定會想深入瞭解的語言真的感覺很舒服。

相關問題