Dan*_*iel 2 objective-c iphone-sdk-3.0
我只是Objective-C的初学者,它的语法只是让我失去理智.
我正在'尝试'在iphone 3.0上工作.
直到知道我已经了解到:
那么我们如何调用我们选择的函数/方法呢?
在C,C++,JAVA,C#的旧语言格式中,我们有一个main()函数来完成我们的控制工作,但它在Obj-c中的main()是什么?
我知道有一个main()函数,但我几乎不知道它是如何工作的.
Ara*_*and 10
main函数启动主程序事件循环,通常不要触摸它.
AppDelegate是您想要放置自己的用户代码的地方.如果您生成一个名为Sample的示例iPhone项目,您将生成一个名为SampleAppDelegate的类,它有一个方法- (void)applicationDidFinishLaunching:(UIApplication *)application,它是我认为您正在寻找的入口点.
SampleAppDelegate类从UIApplicationDelegateProtocol实现一个委托(如c#中的接口),一些方法是可选的applicationDidFinishLaunching不是.这通常是您设置第一个视图控制器来执行初始屏幕的地方.
通过消息传递来调用方法.如果我有一个带有方法打印的类Tom,我将初始化并调用该方法
Tom *tom = [[Tom alloc]init];
[tom print];
Run Code Online (Sandbox Code Playgroud)
哦,没有我的方法参数在哪里?没有括号我感到很遗憾.
如果我有一个打印页码并返回void的方法,我可以这样定义它
-(void)printPageNumbers:(int)pageNumber{
}
Run Code Online (Sandbox Code Playgroud)
并称之为这样
Tom *tom = [[Tom alloc]init];
[tom printPageNumbers:2];
Run Code Online (Sandbox Code Playgroud)
多个参数
-(void)printPageNumbersFrom:(int)fromPageNumber toPageNumber:(int)toPageNumber{
}
Run Code Online (Sandbox Code Playgroud)
并称之为
Tom *tom = [[Tom alloc]init];
[tom printPageNumbersFrom:2 toPageNumber:5];
Run Code Online (Sandbox Code Playgroud)
它不是一种非常类型安全的语言,你可以做一些时髦的东西,比如你有一个Tom对象数组,你可以发送一条消息.如果在运行时发现数组中的对象不是Tom,则会出现异常.
[[myArray objectAtIndex:0] printPageNumbersFrom:2 toPageNumber:5];
Run Code Online (Sandbox Code Playgroud)
关于上面的一些评论"所以对于每个类都会有一个.h文件.m文件.xib文件" - 这是不正确的.每个班级都有一个'.h'和一个'.m'.
'.xib'是一个视图文件,如果你的类没有ui元素,它将没有'.xib'.称为nib文件的'.xib'不是该类的一部分,它只是引用它.(你把两者联系起来)
我发现学习曲线相当陡峭.如果您有C和一些OO支持,Objective-C不是一种硬语言.然而,将它与ui放在一起可能会有点痛苦.斯坦福大学有一个他们通过iTunes分发的在线课程我已经看过他们所有值得的时间,请看这里
享受曲线,我很高兴我不会坐在你的位置:)
| 归档时间: |
|
| 查看次数: |
295 次 |
| 最近记录: |