2010-01-27 74 views
2

我只是Objective-C的初学者,它的语法只是让我一头雾水。与main()相当的Objective-C是什么?

我'试着'在iphone 3.0上工作。

截至知道我已经了解到:

  1. 有它包含 声明每类.h文件中;就像我们 在C++中,我们可以声明变量/ data_fields 的 名称,以后再定义外
  2. *的 功能/方法的功能/方法在一个.m文件中声明,以便为每个类 会有是.h文件,.m文件 和a.xib文件

那么我们如何调用我们选择的函数/方法呢?我们有一个main()函数来完成我们的控制工作,但是在Obj-c中,它的main()函数等价于什么?

我知道还有一个main()函数,但我几乎不知道它是如何工作的。

+0

问:“什么是相当于计算器粗鲁()?” A.不赞赏其他人的时间并且不将问题标记为已回答的人。 – 2012-05-03 07:05:54

回答

10

主要功能启动主程序事件循环,一般你不会碰它。

AppDelegate是你想要放置自己的用户代码的地方。如果你生成一个名为Sample的示例iphone项目,你将生成一个名为SampleAppDelegate的类,它有一个名为- (void)applicationDidFinishLaunching:(UIApplication *)application的方法,这是我认为你正在寻找的入口点。

SampleAppDelegate类从UIApplicationDelegateProtocol实现委托(如c#中的接口),其中一些方法是可选的applicationDidFinishLaunching不是。这通常是您设置第一个视图控制器来执行初始屏幕的地方。

调用方法是通过消息传递完成的。如果我有一个类汤姆的方法印刷,我将初始化并调用方法,以便

Tom *tom = [[Tom alloc]init]; 
[tom print]; 

哦,不,在哪里我的方法arguemts去了?没有括号,我感到迷茫。

,如果我有一个打印页码和返回void的方法,我可能把它定义为这样

-(void)printPageNumbers:(int)pageNumber{ 
} 

,并调用它

Tom *tom = [[Tom alloc]init]; 
[tom printPageNumbers:2]; 

多个参数

-(void)printPageNumbersFrom:(int)fromPageNumber toPageNumber:(int)toPageNumber{ 
} 

并称之为

Tom *tom = [[Tom alloc]init]; 
[tom printPageNumbersFrom:2 toPageNumber:5]; 

它不是一个很类型安全的语言,你可以做一些时髦的东西一样,如果你有汤姆对象的数组,你可以只发送一条消息其中之一。如果在运行时发现数组中的对象不是Tom,你会得到一个异常。

[[myArray objectAtIndex:0] printPageNumbersFrom:2 toPageNumber:5]; 

以上“所以对每个类别都会有.h文件.m文件的.xib文件”一些评论 - 这是不正确。每个班级都有'.h'和'.m'。

A“的.xib”是一个视图文件,如果你的类没有UI元素,它不会有一个“的.xib”。被称为nib文件的'.xib'不是类的一部分,它只是指它。 (您链接两个)

我发现学习曲线相当陡峭的。如果你有C和一些OO的支持,Objective-C并不是一门硬性语言。然而,把它与用户界面放在一起可能会有点痛苦。斯坦福UNI有一个在线课程,他们已经通过iTunes U专区香港专业教育学院分布看着他们,他们都值得的时候,看到here

享受曲线,我很高兴我不是坐在你在哪里:)

+1

+1好工作阿兰! – Fredrik 2010-01-27 07:03:25

1

我认为iPhone的发展提出了程序员的两个挑战在其他语言/ API的经历:

    当你是一个初学者,它有时是非常有帮助的,通过有系统无论世事工作
  1. 的API做这么多的你,这是很难得到的程序实际上是如何构成的把握。人们过去常常从头开始启动应用程序,期望不得不做更多的工作才能启动应用程序。
  2. 接口 - 建造/笔尖技术隐藏了许多复杂的是有经验的程序员来处理。看来,控制器等似乎只是从无处不在地跳出来进入课堂。

因此,有经验的程序员总觉得他们错过了学习API的一些东西,因为他们期望隐藏的复杂性。

相关问题