ObjC for iPhone的語法看起來過於混亂。我確信這篇文章將幫助和節省不僅我的時間,而且還有那些開始與ObjC合作的人。適用於Java開發人員的基本Objective-C
- 如何在類中創建和調用函數?
- 如何在調用函數時傳遞參數,包括基元和對象?
- 如何創建一個全局變量(基元和對象),我可以在整個類中訪問? (我嘗試在.h類中聲明一個數組,並在ViewDidLoad方法中設置值並從其他方法訪問它,但它不起作用!)。
ObjC for iPhone的語法看起來過於混亂。我確信這篇文章將幫助和節省不僅我的時間,而且還有那些開始與ObjC合作的人。適用於Java開發人員的基本Objective-C
cocoa dev cenral網站覆蓋基本。網絡上有很多ios博客。試着用谷歌搜索一個特定的主題,我相信你會得到很多教程或樣本。
我會盡量用例子來回答。
問:如何在類中創建和調用函數? 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
如果你正在使用它。之後,您可以在班級中使用這些變量。
希望它可以幫助
我真的,真的建議閱讀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"];
同樣,你肯定會想深入瞭解的語言真的感覺很舒服。
所有這些問題已經在SO上解答。如有必要,請環顧四周,併發布更具針對性的問題。 – 2012-03-06 07:05:14