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