anzaimary

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一、iOS app执行工作过程

  大部分工作都是由UIApplicationMain函数完成;

  UIApplicationMain函数由UIKit框架提供(UIKit框架提供应用程序构建、管理用户界面所需要的全部类);

  在源文件main.m中自动调用;

  UIKit框架只是Cocoa Touch提供的众多框架中的一个;

  Cocoa Touch是所有iOS应用程序的应用环境;

  调用UIAppilcationMain扫描应用程序中的Info.plist文件,Info,plist是键值对结构化列表;

二、Objective-C语言基本语法

  OC是C语言的超集,支持与C相同的基本语法; 

  eg.1. @interface MyClass(类名称) : NSObject*(父类名称)

       {

        int  count;

        id   data;

        NSString* name;

        }(成员变量) 

     - (id)initWithString:(NSString*)aName;(实例的方法声明)

     +(MyClass*)createMyClassWithString:(NSString*)aName;(类的方法声明)

     @end

  eg.2. -(void)insertObject:(id)anObject atIndex:(NSUInteger)index

      语句说明:

     - : 方法类型标识符(+为类,-为实例);

     void : 返回类型;

     insertObject:, atIndex: :方法签名关键词;

     id,NSUInteger : 参数类型;

     anObject,index : 参数名;  

  eg.3. block:可移植的匿名函数,可用作回调。

     int multiplier = 7;

     int (^myBlock)(int) = ^(int num){ return num * multiplier; };

     语句说明:

       第一个int : myBlock是一个块,会返回int值;

     第二个int : block采用一个参数,也是int类型;

     ^myBlock :'^'将变量myBlock声明为一个块;

     ^(){} : 一个字面常量块定义,分配给变量myBlock;

     num : 参数名;

     return num * multiplier; : 块的主体部分;

  eg.4. 协议

     @inteface HelloWorldViewController : UIViewController <UITextFieldDelegate>

     @end

     遵守了<UITextFieldDelegate>协议

  eg.5 #import

     预处理指令;

     #import由#include衍生来,是#include的改良版,#import可以保证一个头文件不被多次包含;

     #import和@class:

     #import包含这个类的所有信息,包括实体变量和方法;@class只告诉编译器,后面声明的名称是类的名称,并不考虑类如何定义等;

     #import用于实现类里面,@class用于头文件;一般@class是放在interface中;

     #import相对于@class更加耗费资源;

     #import使文件之间有依赖关系,@class不需要文件之间的依赖;

posted on 2016-02-18 09:42  anzaimary  阅读(102)  评论(0编辑  收藏  举报