序)闲扯几句  

  很早就想入手ios开发,但是一直没有机会,个人没有水果机器,上个公司上班的那台mac mini虽然就在我身边,灰都有一层了,但是一直没有机会开机学习下,因为事多,自上一篇文章后,离职后,新公司给配备了mac pro,正好满足了自己都心愿,开始水果软件开发。自己也是从0开始,学习它不过就这3-4天而已,但是之前对oc还是有些了解,因此凭着android的感觉去做,移动端嘛,不都是布局上丢组件,我相信也有人如果从android走到ios也会有这样的思想吧,我的思路是:

  •   先翻翻ios的结构
  •   布局一个view,如何布局并且操纵布局中的对象
  •   基本的button,listview,gridview等等所有的组建的使用
  •   view跳转传值
  •   sqlite操作
  •   网络操作
  •   本地文件操作
  •   内存管理

  到这里基本来说就可以做一些简单的应用了,最好的方式就是赶紧加入一个ios项目组,接下来的东西就是深入了,对于有android的开发经验来说,走到ios开发去不是很难,可能难的地方是对oc的理解,我也不得不说oc的语法对于用惯了java/c+的人来说确实很奇葩,就像做php的热突然看见erlang一样。

准备)oc基础,从面向对象起步

  关于oc的语法http://www.cnblogs.com/lm3515/archive/2010/12/20/1911135.html这个朋友总结的很好,看完这个基本就能开始了。

    

一)HelloWorld

  任何语言都是从它起步,不解释,当我拿到水果机的第一件事是干嘛?打开xcode赶紧创建一个ios的helloworld。

看到上面的目录结构,相信做过cocos的朋友看起来是不是有点熟悉?其实它的运行流程都和cocos差不多。

ios里面文件的后缀:

  .h:和c一样,头文件

  .m:message的缩写,也就是oc对h文件对实现

  .mm:如果我们的一个文件里面即有c++代码,也有oc代码,就将它命名为.mm后缀,编译器会分别处理oc和c+代码。

  .xib:以前叫nib,nib是直接编译成二进制,xib是xml文件,也就是布局文件,就是android里面的layout_xxx.xml。项目里面由一个LunachScreen的xib文件,它就是ios在刚刚启动的时候显示的东西,如果你的应用启动快,它就是一闪而过,启动慢可能会显示久点,相当于loading。

二)流程

ios的入口函数是main.m文件,里面

一个项目项目结构图如上所示,看到这个结构,我们很关心它的流程是怎样,ios里面它的入口是main.m文件,在main里面声明了代理类的运行:

#import <UIKit/UIKit.h>#import "AppDelegate.h"int main(int argc, char * argv[]) {    @autoreleasepool {        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));    }}

这里我们看到由main启动了appdelegate这个代理类,在这个代理类里面我们可以设置ios默认启动哪个试图作为第一个显示试图,如下所示:

#import "AppDelegate.h"#import "ViewController.h"@interface AppDelegate ()@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {     _window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];    ViewController *friendController=[[ViewController alloc]init];    UINavigationController *navigationController=[[UINavigationController alloc]initWithRootViewController:friendController];    _window.rootViewController=navigationController;
   [_window makeKeyAndVisible];
return YES;}- (void)applicationWillResignActive:(UIApplication *)application {}- (void)applicationDidEnterBackground:(UIApplication *)application {}- (void)applicationWillEnterForeground:(UIApplication *)application {}- (void)applicationDidBecomeActive:(UIApplication *)application {}- (void)applicationWillTerminate:(UIApplication *)application {}@end

在这里我们设置了默认显示的第一个视图为:ViewController,并且我们设置了一个东西:

_window.rootViewController=navigationController;

这个我们可以理解为android的Context,有了这个我们就可以全局控制管理view,最开始我没有设置这个,所以view页面跳转老是跳转不过去,并且官方也推荐使用这种方式而不是直接在view中跳转。

三)view

现在我们来到了ViewController,它就是android中的activity,activity继承至Activity,而ios中它继承UIViewController,因此在这里就可以操作这个页面的视图,而View的跳转也就是我们android里面activity的跳转。

它的跳转方式如下:

LoginViewController *ickImageViewController = [[LoginViewController alloc] init];[self.navigationController pushViewController: ickImageViewController animated:true];

就是push和pop view的方式,通过我们前面定义的根view。

四)布局

ios的布局可比android舒服多了,因为屏幕少啊,再多也没android多吧,在ios里面布局分为三种:

  1. 代码:代码布局就是不是用xib文件,直接代码创建button之类的,这个在ios里面是可行的,因为ios项目组开发中,美工在效果图的时候,还会给出组建的xy坐标位置,并且代码可复用程度较高。
  2. xib:xib就是前面将的,和android一个activity对应一个布局xml一样,一个ios的view对应一个xib,但是不得不说的是ios里面的拖拉拽比android里面的穷矮挫舒服多了,效果好很多很多。
  3. Storyboard:这个东西是新生儿,统一了上面两种方式,它管理的所有view的布局。

五)结尾

  好吧,这两天后能够使用3种布局创建一些界面,然后在上面丢一些组件,操作下本地数据库,网络下载点东西,之前我一直做服务器,也在andrid下搞xmpp,正好ios下也练手。

  至于对于ios的深入分析了解,还真不是一天两天能学出来的,能做和懂是两码事了,后者最好是和别人学习。

  写的有些随意和杂。

  

更多相关文章

  1. MTK androiod5.1源码精简系统APP
  2. 开始努力学习Android的binder机制
  3. Android:源码环境编译自定义的APP到ROM(System Image)中
  4. android 打包自己的自定义组件成JAR包
  5. Android(安卓)fill_parent、wrap_content和match_parent的区别
  6. Android之动态改变布局
  7. [Android(安卓)Studio系列(三)]Android(安卓)Studio 编译、同步
  8. Android(安卓)使用百度离线地图(由apk文件转入手机内部存储)
  9. Android(安卓)XML解析(Document Object Model(DOM))

随机推荐

  1. Android应用程序请求SurfaceFlinger服务
  2. Android个版本适配之7.0
  3. Android UI
  4. Android,谁动了我的内存(1)
  5. Android使用facebook api(二)
  6. AndroidManifest.xml解析(二)
  7. 在EditText中插入表情图片 (CharacterSty
  8. Android进阶学习之开篇
  9. android 1.6 联系人
  10. Android夸进程通信机制五:使用文件共享进