iOS开发--疑问篇

来源:互联网 发布:矩阵的秩计算 编辑:程序博客网 时间:2024/06/05 05:38

如果对iOS开发感兴趣,而且心情比较急切,可能我们拿到MacBook Pro之后,来不及看iOS开发的书籍,打开传说中的xcode,摸索着,我们是可以创建一个可以运行的iOS程序的。我称之为“白板程序”,啥都没有,但是毕竟是个iOS程序。下面的图是程序在模拟器中运行的样子,节省文章空间,我旋转了90度(按 ⌘ + 右方向键)



接下来的事情,可能,我们会仔细看xcode自动创建的代码是什么意思,这个时候,如果不了解iOS开发知识,会发现代码看不懂。首先是大家熟悉的main函数:


UIApplicationMain()方法进去之后,不知道到哪里去了,当然我们可以在xcode里面查,或者查xcode的文档,我估计一刚开始,自己也没有多少信心能整明白的,下面是UIApplication.h头文件的内容:
// If nil is specified for principalClassName, the value for NSPrincipalClass from the Info.plist is used. If there is no// NSPrincipalClass key specified, the UIApplication class is used. The delegate class will be instantiated using init.UIKIT_EXTERN int UIApplicationMain(int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName);



反正大概知道这个方法会使用UIApplication这个类,然后这个过程里面会用到一个叫做delegate的类。哦,有点线索了,delegate,xcode给我们的代码中有源代码,看看头文件:这个类里面有个对象,叫做window,估计就是那个白板。有时候,不懂的时候,又要学习,学习之前是可以连猜带蒙的,不是说,最好带着疑问去学习么。


头文件看了,看实现文件:一堆的自动生成的方法,而且这些方法没有在头文件中看见…… 




回头看看头文件,这个类的父类是这样的:UIResponder <UIApplicationDelegate>。这个父类实在看不懂,不带<>的,和带<>,肯定有区别,但是不知道具体是什么区别。但是一点可以确认,这些方法应该是在这里面定义过的。然后怎么办,继续往下研究吗,水好深。还是看那个叫做storyboard的那个文件吧,虽说脑子里面一直有个叫做delegate的单词在晃来晃去。




可以猜到,这个storyboard就是来画界面的,刚才的那个白板就是它弄出来的。而且我们可以发现有很多可选的控件,画出一些不一样的iOS界面:




但是问题又来了,怎样将界面的动作和代码关联起来呢?如果没有人说,自己永远也试不出来。这个问题后面的文章再介绍吧。
再看看另外两个文件吧, ViewController.h, ViewController.m:
===h文件===
#import <UIKit/UIKit.h>@interface ViewController : UIViewController@end
===m文件===
#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad{    [super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.}- (void)didReceiveMemoryWarning{    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}@end



看不出来和delegate有什么关系,或许和storyboard有点关系,不是太明显。

弄了半天,还是有收获,毕竟我们弄出来一个“白板程序”和一个“带控件的非白板程序”。但是,我们不知道这两个程序背后的故事,我们想要知道更多,这样,才不会有手脚被捆住的感觉。
因此,下一步,不求全部弄明白,但求入门。下一篇,我们一起来看看例子,怎样让程序动起来。




0 0