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
- iOS开发--疑问篇
- iOS开发过程中的疑问
- ios开发过程中我遇到的疑问汇总
- 初学ios开发,关于自定义界面有一些疑问
- IOS各种疑问总结
- iOS开发者证书疑问
- iOS app 疑问解答
- 疑问篇
- asp.net 开发疑问?
- java开发疑问集
- 敏捷开发疑问
- hive 开发疑问
- IOS自学笔记1(autolayout疑问篇)
- Android开发疑问与解答
- WinPhone开发疑问与解答
- 开关电源-疑问篇
- 疑问
- 疑问
- plsql developer 注册码
- 不错的 组合模式
- iOS基础一 NSData
- 第三周作业——冒泡排序和归并排序
- 抖动窗口的实现
- iOS开发--疑问篇
- FIR滤波器基础
- openfire开发
- 关于字符ASCII与字符相加输出的错误
- jquery实现下拉菜单的二级联动,利用json对象从DB取值显示联动
- 模板引擎之 NVelocity 学习
- 关联属性见解
- OpenGL学习笔记---黑屏解决之透视投影
- Android Activity界面切换添加动画特效(转)