Java Developer的基本Objective-C

时间:2012-03-06 07:01:43

标签: iphone objective-c

ObjC for iPhone的语法看起来太混乱了。我相信这篇文章不仅可以帮助我,也可以节省那些开始与ObjC合作的人。

  1. 如何在类中创建和调用函数?
  2. 如何在调用函数时传递参数,包括原语和对象?
  3. 如何创建可以在全班访问的全局变量(基元和对象)? (我尝试在.h类中声明一个数组,在ViewDidLoad方法中设置值并从其他方法访问它,并且它不起作用!)。

3 个答案:

答案 0 :(得分:3)

我会尝试回答一些例子。

问:如何在类中创建和调用函数?

答:几乎和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 :(得分:1)

我真的,真的建议读一本关于Objective-C的大书,但我会在同一时间给你一张备忘单:

创建一个函数:

@interface ClassName

- (void) methodName;

从类实现中调用函数:

[self methodName];

从另一个类调用该函数:

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

带参数的函数:

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

使用参数调用函数:

[self methodName:@"theArgumentStringBeingPassed"];

声明类变量:

@interface ClassName
{
    NSString* aStringVariable;
}

从类实现中访问它:

@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"];

同样,你肯定想深入了解这种语言,真的感觉很舒服。

答案 2 :(得分:0)

cocoa dev cenral网站涵盖了基本内容。网上有很多ios博客。尝试谷歌搜索一个特定的主题,我相信你会得到很多教程或样本。