SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
Objective C 与 XCode

刘鑫 <march@xiachufang.com>

      iOS 及 Mac OS 开发简介


     February 24, 2012




                          .   .   .   .   .   .
关于本课程




 一个人应该能够换尿布,策划战争,杀猪,开船,设计房子,写
 十四行诗,结算账户,砌墙,接脱臼的骨头,安慰濒死的人,服
 从命令,发布命令,携手合作,独立行动,解数学方程,分析新
 问题,铲粪,电脑编程,做出可口的饭,善打架,勇敢地死去。
 只有昆虫才专业化。
                  ——Robert A. Heinlein




                         .   .   .   .   .   .
What's Apple?




          .   .   .   .   .   .
肾之天敌




       Figure: iPhone




                        .   .   .   .   .   .
一个卖 mp3 的公司居然咸鱼翻身了……——孔老师




          Figure: iPod


                         .   .   .   .   .   .
唯冠出品,中华之光




            .   .   .   .   .   .
星巴克利器




        Figure: 各种 MAC




                         .   .   .   .   .   .
Apple 的软件体系




        .   .   .   .   .   .
iOS ——mp3 厂商咸鱼翻身之秘




          Figure: iOS 丰富的 APP




                            .   .   .   .   .   .
Mac OS——Alan Kay 抄袭了它




       Figure: Mac OS 的软件正在向 iOS 风格转变




                             .   .   .   .   .   .
Objective C




  #import <stdio . h>

  i n t main( i n t argc , char* argv [ ] ) {
        p r i n t f ( " hello world !  n " ) ;
        return 0;
  }




                                             .    .   .   .   .   .
这货不是 C




         等等,哪里不对?




               .   .   .   .   .   .
这货真的不是 C




 Objective C 是 C 语言的一个 Smalltalk 风格的面向对象扩
 展,高度兼容 C。是 Apple 各平台的主力开发工具。




                             .   .   .   .   .   .
IDE 实作



 #import <Foundation / Foundation . h>

  i n t main ( i n t argc , const char * argv [ ] )
  {

       @autoreleasepool {
          NSLog(@" Hello , World ! " ) ;

      }
      return 0;
  }




                                        .   .   .     .   .   .
XCode




  XCode 是 Apple 官方推出的 Apple 体系开发工具,用于开发
  Apple 各平台的 IDE。




                           .   .   .   .   .   .
iOS 开发演示




 演示最简单的 ios 项目。




                  .   .   .   .   .   .
来一发吧!




 演示最简单的 ios 项目建立。




                    .   .   .   .   .   .
Objective?




  演示最简单的类型定义。




                .   .   .   .   .   .
GUI?




  演示最简单的 cocoa 界面开发。




                       .   .   .   .   .   .
MVC?




 演示并解说 cocoa 的 MVC 结构。




                         .   .   .   .   .   .
事件?




 演示并解说 cocoa 的事件绑定。




                      .   .   .   .   .   .
Debug?




  演示并解说 cocoa 的一些 debug 操作。




                              .   .   .   .   .   .
谁动了我的内存?




 Objective C 的内存管理基于 alloc/dealloc 机制。需要程序员
 细心管理。




                             .   .   .   .   .   .
谁动了我的对象?




 Objective C 通过 init/release 机制管理对象结构的构造和释
 放。




                             .   .   .   .   .   .
谁动了我的引用技术?




 Objective C 通过 retain/release 机制管理对象结构的构造和
 释放。




                             .   .   .   .   .   .
谁动了我的属性?




  ▶   retain/assign
  ▶   strong/weak




                      .   .   .   .   .   .
autorelease?




  AutoRelease 机制适用长生命周期的对象,不建议过度使用。




                        .   .   .   .   .   .
托管给工具?




 GC 机制性能底下,新项目建议使用 arc 机制。




                       .   .   .   .   .   .
我的内存哪儿去了?




 介绍 profile 工具




                .   .   .   .   .   .
我的代码可靠吗?




 介绍 analyze 工具。




                  .   .   .   .   .   .
我的项目质量高吗?




 介绍 Unit Test 工具 GHUnitTest。




                               .   .   .   .   .   .
推荐开发书籍。




          .   .   .   .   .   .
我们的项目中使用的第三方组件。




            .   .   .   .   .   .
再见!




      谢谢大家!
                      Power By LTEX
                               A




              .   .      .   .   .    .

Contenu connexe

Similaire à Xcode tutorial

Python 数据库技术第三讲
Python 数据库技术第三讲Python 数据库技术第三讲
Python 数据库技术第三讲March Liu
 
漫談 Source Control Management
漫談 Source Control Management漫談 Source Control Management
漫談 Source Control ManagementWen-Shih Chao
 
PostgreSQL Introduction V0.1
PostgreSQL Introduction V0.1PostgreSQL Introduction V0.1
PostgreSQL Introduction V0.1March Liu
 
软件开发工程化的个人体验
软件开发工程化的个人体验软件开发工程化的个人体验
软件开发工程化的个人体验March Liu
 
rebar erlang 2
rebar erlang 2rebar erlang 2
rebar erlang 2致远 郑
 
09 creating windows phone game with cocos2d-xna
09   creating windows phone game with cocos2d-xna09   creating windows phone game with cocos2d-xna
09 creating windows phone game with cocos2d-xna乐费 胡
 
Xcode开发员入门导引(简体中文版)
Xcode开发员入门导引(简体中文版)Xcode开发员入门导引(简体中文版)
Xcode开发员入门导引(简体中文版)babyyellow li
 
Xcode开发员入门导引
Xcode开发员入门导引Xcode开发员入门导引
Xcode开发员入门导引Sophia Lindsey
 
8门编程语言的设计思考
8门编程语言的设计思考8门编程语言的设计思考
8门编程语言的设计思考Ray Song
 
C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述Xiaozhe Wang
 
iOS 入門教學
iOS 入門教學iOS 入門教學
iOS 入門教學Steven Shen
 
Introduction to corona sdk
Introduction to corona sdkIntroduction to corona sdk
Introduction to corona sdk馬 萬圳
 
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)National Cheng Kung University
 
C++工程实践
C++工程实践C++工程实践
C++工程实践Shuo Chen
 
Hcsm lect-20120913
Hcsm lect-20120913Hcsm lect-20120913
Hcsm lect-20120913lusecheng
 
Coscup2011: porting android to brand-new cpu architecture
Coscup2011: porting android to brand-new cpu architecture Coscup2011: porting android to brand-new cpu architecture
Coscup2011: porting android to brand-new cpu architecture lusecheng
 
ios 5 arc完全指南
ios 5 arc完全指南ios 5 arc完全指南
ios 5 arc完全指南lambokini
 

Similaire à Xcode tutorial (20)

Python 数据库技术第三讲
Python 数据库技术第三讲Python 数据库技术第三讲
Python 数据库技术第三讲
 
漫談 Source Control Management
漫談 Source Control Management漫談 Source Control Management
漫談 Source Control Management
 
PostgreSQL Introduction V0.1
PostgreSQL Introduction V0.1PostgreSQL Introduction V0.1
PostgreSQL Introduction V0.1
 
软件开发工程化的个人体验
软件开发工程化的个人体验软件开发工程化的个人体验
软件开发工程化的个人体验
 
LLVM introduction
LLVM introductionLLVM introduction
LLVM introduction
 
rebar erlang 2
rebar erlang 2rebar erlang 2
rebar erlang 2
 
09 creating windows phone game with cocos2d-xna
09   creating windows phone game with cocos2d-xna09   creating windows phone game with cocos2d-xna
09 creating windows phone game with cocos2d-xna
 
Xcode开发员入门导引(简体中文版)
Xcode开发员入门导引(简体中文版)Xcode开发员入门导引(简体中文版)
Xcode开发员入门导引(简体中文版)
 
Xcode开发员入门导引
Xcode开发员入门导引Xcode开发员入门导引
Xcode开发员入门导引
 
8门编程语言的设计思考
8门编程语言的设计思考8门编程语言的设计思考
8门编程语言的设计思考
 
C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述
 
iOS 入門教學
iOS 入門教學iOS 入門教學
iOS 入門教學
 
Introduction to corona sdk
Introduction to corona sdkIntroduction to corona sdk
Introduction to corona sdk
 
Taiwanese Experience in IT
Taiwanese Experience in ITTaiwanese Experience in IT
Taiwanese Experience in IT
 
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
 
C++工程实践
C++工程实践C++工程实践
C++工程实践
 
Hcsm lect-20120913
Hcsm lect-20120913Hcsm lect-20120913
Hcsm lect-20120913
 
Build Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratchBuild Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratch
 
Coscup2011: porting android to brand-new cpu architecture
Coscup2011: porting android to brand-new cpu architecture Coscup2011: porting android to brand-new cpu architecture
Coscup2011: porting android to brand-new cpu architecture
 
ios 5 arc完全指南
ios 5 arc完全指南ios 5 arc完全指南
ios 5 arc完全指南
 

Plus de March Liu

Jaskell Core Parsec
Jaskell Core ParsecJaskell Core Parsec
Jaskell Core ParsecMarch Liu
 
创业项目中常见的技术和管理债务
创业项目中常见的技术和管理债务创业项目中常见的技术和管理债务
创业项目中常见的技术和管理债务March Liu
 
Python速成指南
Python速成指南Python速成指南
Python速成指南March Liu
 
Python 数据库技术讲座(二)
Python 数据库技术讲座(二)Python 数据库技术讲座(二)
Python 数据库技术讲座(二)March Liu
 
Python 数据库技术讲座(一)
Python 数据库技术讲座(一)Python 数据库技术讲座(一)
Python 数据库技术讲座(一)March Liu
 
Python 数据库技术
Python 数据库技术Python 数据库技术
Python 数据库技术March Liu
 
PostgreSQL 9 的 standby 集群实践
PostgreSQL 9 的 standby 集群实践PostgreSQL 9 的 standby 集群实践
PostgreSQL 9 的 standby 集群实践March Liu
 
PostgreSQL 9 Standby
PostgreSQL 9 StandbyPostgreSQL 9 Standby
PostgreSQL 9 StandbyMarch Liu
 
基于 PostgreSQL 的关系型数据库方案
基于 PostgreSQL 的关系型数据库方案基于 PostgreSQL 的关系型数据库方案
基于 PostgreSQL 的关系型数据库方案March Liu
 
1 Python简介
1 Python简介1 Python简介
1 Python简介March Liu
 
2 Python开发工具链
2 Python开发工具链2 Python开发工具链
2 Python开发工具链March Liu
 
3 Python开发风格与建议
3 Python开发风格与建议3 Python开发风格与建议
3 Python开发风格与建议March Liu
 
Postgre sql intro 0
Postgre sql intro 0Postgre sql intro 0
Postgre sql intro 0March Liu
 
Perl 6 news at 2010-06
Perl 6 news at 2010-06Perl 6 news at 2010-06
Perl 6 news at 2010-06March Liu
 

Plus de March Liu (15)

Jaskell Core Parsec
Jaskell Core ParsecJaskell Core Parsec
Jaskell Core Parsec
 
创业项目中常见的技术和管理债务
创业项目中常见的技术和管理债务创业项目中常见的技术和管理债务
创业项目中常见的技术和管理债务
 
Python速成指南
Python速成指南Python速成指南
Python速成指南
 
Python 数据库技术讲座(二)
Python 数据库技术讲座(二)Python 数据库技术讲座(二)
Python 数据库技术讲座(二)
 
Python 数据库技术讲座(一)
Python 数据库技术讲座(一)Python 数据库技术讲座(一)
Python 数据库技术讲座(一)
 
Python 数据库技术
Python 数据库技术Python 数据库技术
Python 数据库技术
 
PostgreSQL 9 的 standby 集群实践
PostgreSQL 9 的 standby 集群实践PostgreSQL 9 的 standby 集群实践
PostgreSQL 9 的 standby 集群实践
 
PostgreSQL 9 Standby
PostgreSQL 9 StandbyPostgreSQL 9 Standby
PostgreSQL 9 Standby
 
基于 PostgreSQL 的关系型数据库方案
基于 PostgreSQL 的关系型数据库方案基于 PostgreSQL 的关系型数据库方案
基于 PostgreSQL 的关系型数据库方案
 
About Me
About MeAbout Me
About Me
 
1 Python简介
1 Python简介1 Python简介
1 Python简介
 
2 Python开发工具链
2 Python开发工具链2 Python开发工具链
2 Python开发工具链
 
3 Python开发风格与建议
3 Python开发风格与建议3 Python开发风格与建议
3 Python开发风格与建议
 
Postgre sql intro 0
Postgre sql intro 0Postgre sql intro 0
Postgre sql intro 0
 
Perl 6 news at 2010-06
Perl 6 news at 2010-06Perl 6 news at 2010-06
Perl 6 news at 2010-06
 

Xcode tutorial