当前位置:  编程技术>移动开发
本页文章导读:
    ▪iOS开发框架引见(一)-iOS开发介绍        iOS开发框架介绍(一)---iOS开发介绍 介绍 iOS 技术概述是针对iOS平台新手的介绍指南。它简要介绍一些对开发过程有影响的技术和工具,并且提供相关文档和其他信息来源链接。通过阅读本.........
    ▪ IOS之Objective-C学习札记(四)        IOS之Objective-C学习笔记(四)       大家好~由于最近都比较忙,趁着现在周末更新一下我的Objective-C学习笔记,好,现在开始。 1.什么是复合?在Objective-C 中,复合是通过包含作为实例变量.........
    ▪ 由init、loadView、viewDidLoad、viewDidUnload、dealloc的关系谈起       由init、loadView、viewDidLoad、viewDidUnload、dealloc的关系说起  init方法 在init方法中实例化必要的对象(遵从LazyLoad思想) ‍init方法中初始化ViewController本身 loadView方法 当view需要被展示而它却是n.........

[1]iOS开发框架引见(一)-iOS开发介绍
    来源: 互联网  发布时间: 2014-02-18
iOS开发框架介绍(一)---iOS开发介绍
介绍

iOS 操作系统是 iPhone、 iPod touch 以及 iPad 设备的核心。

构建 iOS 平台的知识与 Mac OS X 系统同出一辙,iOS 平台的许多开发工具和开发技术也源自 Mac OS X。但开发者无须具备 Mac OS X 开发经验就可以编写 iOS 应用程序。iPhone 软件开发包(SDK)为着手创建 iOS 应用程序提供所需要的一切。

谁应阅读本文档?

iOS 技术概述是针对iOS平台新手的介绍指南。它简要介绍一些对开发过程有影响的技术和工具,并且提供相关文档和其他信息来源链接。通过阅读本文档,您将可以:

  • 熟悉iOS平台。

  • 了解iOS软件技术、知道为何使用这些技术以及何时使用。

  • 了解该平台的发展机遇。

  • 获得从其他平台转移到 iOS平台用到的技巧和指南。

  • 找到和您感兴趣的技术相关的关键文档。

本文档只提供和软件开发过程有关的信息,不提供和用户级别的系统功能有关的信息。

本文档非常适合开发新手用于熟悉iOS平台。有经验的开发人员可以将本文档作为路线图,根据它来钻研某些特定技术或开发技术。

本文档的组织方式

本文档包含下述章节和附录:

  • “ iOS开发相关信息”概要介绍iOS平台以及如何使用iPhone SDK进行iOS应用程序开发。

  • “Cocoa Touch 层” 介绍 iOS的 Cocoa Touch层以及它为应用程序提供的功能。

  • “Media层” 介绍iOS的Media层以及它为应用程序提供的功能。

  • “Core Services层” 介绍iOS的Core Service层以及它为应用程序提供的功能。

  • “Core OS 层” 介绍iOS的Core OS层以及它为应用程序提供的功能。

  • “将Cocoa应用软件移植到iOS平台” 为希望将现有Cocoa应用程序移植到iOS平台的开发者提供一些起步建议。

  • “iOS框架 ” 对开发软件使用到的框架进行描述。您可以通过这些信息找到其他您所感兴趣的技术,或者了解某个框架是在何时被引入iOS平台。

  • “iOS开发者工具”概要介绍您在创建iOS软件时可以使用的工具。

获取iPhone SDK

iPhone SDK包含设计、创建、调试以及优化iOS软件所需要的工具。同时,它也包含一些头文件、样例代码以及平台技术文档。您可以从iPhone开发中心的会员区下载iPhone SDK,您可以通过下面的链接进入会员区http://www.apple.com.cn/developer/。

如需更多MAC OS X可用工具及技术的信息, 请阅读 “iOS开发者工具”

提供反馈

如希望为该文档提供反馈,请使用内建于页面底部的反馈表格。

我们提倡您向苹果公司报告在使用苹果软件或者文档过程中遇到的错误。您也可以向我们提交增强功能请求,告知我们某个产品或文档未来版本应具备什么功能。苹果开发者网站的错误报告页面可供您提交错误报告或增强功能的请求:

http://developer.apple.com/bugreporter/

您必须注册成为苹果开发者才能提交错误报告。按照苹果开发者注册页面的指导,您可以免费获得一个登陆名称。

其他参考资料

下述文档提供和 iOS开发相关的关键信息:

  • Cocoa基础指南 为iOS应用程序开发使用的设计模式和实践提供起步信息。

  • iOS 应用程序编程指南 提供iOS应用程序的架构概览及创建iOS应用程序的实践准则。

  • iPhone人机接口指南 和 iPad人机接口指南 为如何设计应用程序的用户接口提供重要的信息。

  • iOS开发指南 从工具方面为iOS开发过程提供重要信息。从配置设备到使用Xcode(以及其他工具)构建、运行并测试软件,俱都涵盖其中。

  • Objective-C编程语言 介绍Objective-C以及Objective-C运行时系统。Objective-C运行时系统是许多动态行为和iOS 扩展性的基础。


    
[2] IOS之Objective-C学习札记(四)
    来源: 互联网  发布时间: 2014-02-18
IOS之Objective-C学习笔记(四)

       大家好~由于最近都比较忙,趁着现在周末更新一下我的Objective-C学习笔记,好,现在开始。

1.什么是复合?在Objective-C 中,复合是通过包含作为实例变量的对象指针实现的:(我们定义一辆车有一个发动机和四个轮,程序如下)

[plain] view plaincopy
  •  #import<Foundation/Foundation.h>  
  •   
  • @interface  Tire : NSObject    
  • @end//Tire接口    
  • @implementation  Tire    
  •  - (NSString *) description    
  •  {    
  •        return(@"I  am  a  tire, I  last  a  while");    
  •  }//description的实现    
  •  @end//Tire的实现   
  •  
  •  @interface  Engine  : NSObject    
  •  @end//Engine接口    
  •  @implementation  Engine    
  •   - (NSString *) description    
  •  {    
  •        return(@"I am an engine. Vroom!");    
  •  }    
  •  @end//Engine的实现    

  •  @interface Car : NSObject    
  •  {    
  •         Engine  *engine;    
  •         Tire  *tires[ 4 ];    
  •  }    
  •  - (void) print;    
  •  @end//Car接口    
  •  @Implementation  Car    
  •  - (id) init    
  •   {    
  •        if (self  = [super  init] ){    
  •             engine  =  [ Engine  new ];    
  •              tires[ 0 ] = [ Tire new ];    
  •              tires[ 1 ] = [ Tire new ];    
  •              tires[ 2 ] = [ Tire new ];    
  •              tires[ 3 ] = [ Tire new ];    
  •        }    
  •        return(self);    
  •   }//init方法实现    
  •   -(void) print    
  •    {    
  •          NSLog (@"%@" , engine);    
  •          NSLog (@"%@" , tires[0]);    
  •          NSLog (@"%@" , tires[1]);    
  •          NSLog (@"%@" , tires[2]);    
  •          NSLog (@"%@" , tires[3]);    
  •    }//print方法的实现    
  •   @end//Car的实现    
  •    int  main (int  argc, const  char * argv[ ])    
  •   {    
  •          Car  *car;    
  •          car  = [ Car  new];    
  •          [ car print ];    
  •          return (0);    
  •   }//main :运行结果为,I am an engine, Vrooml    
  •                                            I am a tire , I last a  while.    
  •                                            I am a tire , I last a  while.    
  •                                            I am a tire , I last a  while.    
  •                                            I am a tire , I last a  while.    
  • ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////    

  • 2.下面我来详解看看这个程序要注意的一些地方:

              (1)自定义NSLog( ):从上面程序我们可以看到轮和发动机都有一个description方法,程序运行时是这样的:NSlog( )给当前对象发送描述消息(description),r

               然后对象的description方法生产一个NSString并返回,之后NSLog( )在其输出中包含这个字符串。在类中添加description方法就可以自定义NSLog( )如何输出对象

              (2)engine和tires实例变量是复合的,因为它们是Car的实例变量。每个Car对象都会为指向engine和tires的指针分配内存,但是真正包含在Car中的并不是engine

              和tires变量,而只是内存中存在的其他对象的引用。这些指针开始会被初始化为nil(零值)

              (3)来看看Car类做了些什么,第一步,为对象分配内存,即对象获得一个用来存放其实例变量的内存块,第二步,自动调用init方法,让对象处于可以状态。

              (4) if (self  = [super  init] )这句的具体含义在后面会说明。

    3.存取方法:

            (1)什么是存取方法?它是来读取或改变对象特定属性的方法。一般分为,setter方法和getter方法。看看一下例子:

    [plain] view plaincopy
  • @interface  Car : NSObject  
  •        {  
  •                 Engine  *engine;  
  •                 Tire  *tires[ 4 ];  
  •        }  
  •       -(Engine *) engine;  
  •       -(void *) setEngine : (Engine *)newEngine;  
  •       -(Tire *) tireAtindex : ( int ) index;  
  •       -(void) setTire: (Tire *)tire  
  •                   atIndex: (int) index;  
  •       -(void) print;  
  •      @ens//Car  
  •      @implementation  Car  
  •      -(Engine *) engine  
  •       {  
  •             return (engine);  
  •      }//engine  
  •      -(void )setEngine : (Engine *) newEngine  
  •      {  
  •            engine  =  newEngine;  
  •      }//setEngine  
  •      -(void) setTire  : (Tire *) tire  
  •                  atindex  : (int) index  
  •       {  
  •             if(index < 0 || index > 3){  
  •                    NSLog (@"bad index (%d) in setTire : atIndex : ", index);  
  •                   exit (1);   
  •             }  
  •             tires[ index ] = tire;  
  •       }//seTire : atIndex :  
  •      -(Tire  *) tireAtIndex : (int) index   
  •      {  
  •                    if( index < 0 || index >3){  
  •                            NSLog (@"bad  index  (%d)  in "tireAtIndex :" , index );  
  •                            exit (1);  
  •                    }  
  •                   return (tires [ index ] );  
  •       }//tireAtIndex :  
  •     @end//Car的实现  
  •    //////////////////////////////////////////////////////////////////////////////////////////////////////////  

  •           想实际使用这些存取方法,可以像下面这样写:Engine  *engine = [ Engine  new ] ;

                                                                                                   [ car setEngine : engine ];

                                                                                                   NSLog (@"the car Engine is %@" , [car engine]);

                                                                                                   Tire *tire = [  Tire new ];

                                                                                                   [car setTire : tire 

                                                                                                           atIndex : 2 ];

                                                                                                   NSLog (@"tire number two is %@",[ car tireAtIndex : 2 ]);                   

    4.以上程序需要注意的一些地方:

              (1)setter方法根据它所更改的属性的名称来命名,并加上前缀”set“,而getter方法则仅仅根据其返回的属性名称来命名前面不加”get“

              (2)在以上程序中可以看到:-(void) setTire  : (Tire *) tire  atindex : (int) index ,设置轮的方法,这方法这样写是什么意思呢?由于汽车的4个轮胎都有自己不同的位置,所以为汽车配置某个轮胎的时候,不仅要知道使用哪个轮胎,还要清楚每个轮在 汽车上的位置,同样,当访问汽车上某个轮胎时,也要指定这个轮的具体位置才行


    5.添加了设置属性和获取属性等存储方法后对应的main()函数:

    [plain] view plaincopy
  • int  main (int  argc,  const  char * argv[ ])  
  •  {  
  •        Car *car  =  [Car  new];  
  •         Engine *engine = [Engine  new];  
  •         [ car setEngine : engine ];  
  •         int  i;  
  •         for (i = 0 ; i <4 ; i++){  
  •             Tire *tire = [ Tire new];  
  •             [car  setTire : tire   
  •                   atIndex  : i ];    
  •          }  
  •          [ car print ];  
  •          return(0);  
  •  }//main,输出结果与之前一样  
  •    
  • 6.另外我们还可以自定义两个类,分别继承Engine和Tire,并且可以对它的方法复写。具体怎么复合和继承配合使用这里就不多说了,比较简单~

    7.判断是复合还是继承的方法很简单:当某件事物里有什么这是复合,当某事物是什么这是继承,用这个方法就能简单的把它们区分开来。

            好了,这篇就在这里结束了~继续会有更新~~~转载请注明:http://blog.csdn.net/yuzhiboyi


        
    [3] 由init、loadView、viewDidLoad、viewDidUnload、dealloc的关系谈起
        来源: 互联网  发布时间: 2014-02-18
    由init、loadView、viewDidLoad、viewDidUnload、dealloc的关系说起
     

    init方法

    在init方法中实例化必要的对象(遵从LazyLoad思想)

    ‍init方法中初始化ViewController本身

    loadView方法

    当view需要被展示而它却是nil时,viewController会调用该方法。不要直接调用该方法。

    如果手工维护views,必须重载重写该方法

    如果使用IB维护views,必须不能重载重写该方法

    loadView和IB构建view

    你在控制器中实现了loadView方法,那么你可能会在应用运行的某个时候被内存管理控制调用。 如果设备内存不足的时候, view 控制器会收到didReceiveMemoryWarning的消息。 默认的实现是检查当前控制器的view是否在使用。 如果它的view不在当前正在使用的view hierarchy里面,且你的控制器实现了loadView方法,那么这个view将被release, loadView方法将被再次调用来创建一个新的view。

    viewDidLoad方法

    viewDidLoad 此方法只有当view从nib文件初始化的时候才被调用。

    重载重写该方法以进一步定制view

    在iPhone OS 3.0及之后的版本中,还应该重载重写viewDidUnload来释放对view的任何索引

    viewDidLoad后调用数据Model

    viewDidUnload方法‍

    当系统内存吃紧的时候会调用该方法(注:viewController没有被dealloc)

    内存吃紧时,在iPhone OS 3.0之前didReceiveMemoryWarning是释放无用内存的唯一方式,但是OS 3.0及以后viewDidUnload方法是更好的方式

    在该方法中将所有IBOutlet(无论是property还是实例变量)置为nil(系统release view时已经将其release掉了)

    在该方法中释放其他与view有关的对象、其他在运行时创建(但非系统必须)的对象、在viewDidLoad中被创建的对象、缓存数据等 release对象后,将对象置为nil(IBOutlet只需要将其置为nil,系统release view时已经将其release掉了)

    一般认为viewDidUnload是viewDidLoad的镜像,因为当view被重新请求时,viewDidLoad还会重新被执行

    viewDidUnload中被release的对象必须是很容易被重新创建的对象(比如在viewDidLoad或其他方法中创建的对象),不要release用户数据或其他很难被重新创建的对象

    dealloc方法

    viewDidUnload和dealloc方法没有关联,dealloc还是继续做它该做的事情

     
     
    本文来自:http://www.cnblogs.com/wwwkhd/archive/2011/03/14/1983192.html

        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3