国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

iOS開發(fā)系列—Objective-C之基礎(chǔ)概覽

2019-11-14 20:13:35
字體:
供稿:網(wǎng)友

概覽

前面我們已經(jīng)用了幾章內(nèi)容進(jìn)行C語言介紹,當(dāng)然要通過幾篇文章完整的介紹C語言的知識是不太現(xiàn)實的,例如C語言的文件操作、內(nèi)存申請等我們都沒有重點(diǎn)介紹,當(dāng)然核心知識點(diǎn)基本都已經(jīng)提到了,后面有時間我們會繼續(xù)擴(kuò)充。今天我們正式開始學(xué)習(xí)Objective-C,以后簡稱“ObjC”,ObjC是在C語言的基礎(chǔ)上加上了一層面向?qū)ο蟮奶匦裕耆嫒軨語言,甚至可以混寫C++。它是Mac OS X和IOS的主要開發(fā)語言,從IOS發(fā)布之后可以說ObjC的地位呈直線上升趨勢,當(dāng)前ObjC已經(jīng)是僅次于C語言、java的第三大編程語言。今天我們先簡單的看一下C語言的一些基礎(chǔ)內(nèi)容:

  1. 第一個ObjC程序
  2. 基本數(shù)據(jù)類型

第一個ObjC程序

打開Xcode,創(chuàng)建一個新項目

Xcode

選擇命令行程序

CommandLine

選擇程序語言為Ojbective-C并輸入項目名稱

ProjectName

選擇保存目錄

SelectFolder

默認(rèn)生成一個基本的項目結(jié)構(gòu)

Program

程序源代碼

////  main.m//  Basics////  Created by Kenshin Cui on 14-2-1.//  Copyright (c) 2014年 Kenshin Cui. All rights reserved.//#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {        // insert code here...        NSLog(@"Hello, World!");    }    return 0;}

上面是通過Xcode創(chuàng)建的第一個ObjC程序,這是一個經(jīng)典的“Hello,World!”。運(yùn)行結(jié)果如下:

RunResult

下面對上面的代碼做一下簡單解釋:

  1. 首先#import是一個導(dǎo)入命令,類似于C語言的#include命令,但是相對于#include而言,#import有效的處理了重復(fù)導(dǎo)入的問題,在C語言中也提到過如何通過條件編譯解決重復(fù)導(dǎo)入,而在ObjC中你不需要處理了,#import已經(jīng)自動進(jìn)行了重復(fù)處理;與#include類似,導(dǎo)入系統(tǒng)類庫使用<>,導(dǎo)入自定義類庫使用””;
  2. Foundation.h是Foundation框架中的頭文件,這是ObjC中的一個基礎(chǔ)類庫,基本上后面我們用到的所有ObjC的代碼都需要引入這個類庫;
  3. @autoreleasepool是ObjC的關(guān)鍵字,它的作用是對包含在這個關(guān)鍵字后面大包括內(nèi)的程序會自動進(jìn)行內(nèi)存回收,不需要開發(fā)人員手動釋放無用的對象;當(dāng)然表面上看起來這有點(diǎn)類似于C#和Java的內(nèi)存垃圾回收機(jī)制,但是事實上他們的原理完全不同,以后再做具體解釋。
  4. NSLog是標(biāo)準(zhǔn)輸出函數(shù),類似于C語言中的PRintf()函數(shù),但是它會自動換行,當(dāng)然它同樣支持格式輸出(例如%i表示輸出整形數(shù)據(jù),%f輸出浮點(diǎn)型數(shù)據(jù)),這個函數(shù)在Fundation.h中聲明;
  5. @”Hello,World!”,是一個字符串常量,在ObjC中字符串前需要使用@符號;

 

擴(kuò)展--OjbC語法特點(diǎn)

  • ObjC中沒有命名空間(C#)或包(Java)的概念,那也就是說在同一個應(yīng)用中不能同時存在兩個完全相同的類名,通常情況下我們通過前綴加以區(qū)分,例如在ObjC中的NSString、NSLog中的NS就是前綴。

NS其實是NeXTSTEP縮寫,是喬布斯離開蘋果后在NeXT公司所開發(fā)的系統(tǒng),這個操作系統(tǒng)在當(dāng)時雖然沒有獲得廣泛認(rèn)同,但是卻為后面Mac OX奠定了基礎(chǔ)。

  • ObjC中很多關(guān)鍵字都是以@開頭(例如@autoreleasepool、@interface、@protocol),另外需要注意的是為了區(qū)分C語言中的字符串,ObjC中的字符串也必須加上@。

基本數(shù)據(jù)類型

在ObjC中的基本數(shù)據(jù)類型除了C語言中的char、int、float、double之外還有:

  1. BOOL類型,包含兩個值YES和NO,其實ObjC中的布爾類型就是整數(shù)1和0;
  2. id類型,是一個對象類型,可以表示所有對象;
  3. NSString是Fundation框架中定義的字符串類型;
////  main.m//  Basics////  Created by Kenshin Cui on 14-2-1.//  Copyright (c) 2014年 Kenshin Cui. All rights reserved.//#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {        char a='a';        int b=1;        float c=8.5;        double d=8.5e+12;        char e='a';        BOOL f=YES,g=NO;        NSLog(@"a=%c,b=%i,c=%f,d=%f,e=%c,f=%i,g=%i",a,b,c,d,e,f,g);        //結(jié)果:a=a,b=1,c=8.500000,d=8500000000000.000000,e=a,f=1,g=0                NSString *str=@"Hello,World!";        NSLog(@"str=%@",str); //結(jié)果:str=Hello,World!                NSLog(@"object=%p",nil);//結(jié)果:object=0x0    }    return 0;}

關(guān)于上面id類型在這里不做過多的解釋,后面我們會專門說到,下面列出常用格式符:

格式化輸出

 

注意

1.在C或者ObjC中整形可以使用%i也可以使用%d來格式化,只有使用scanf()輸入的時候二者才有區(qū)別(由于%d始終被編譯器解釋為decimal intergeer所以即使輸入010會被認(rèn)為是整形10,而%i則會將前面的0或者0x認(rèn)為此輸入是八進(jìn)制或十六進(jìn)制整數(shù));

2.%p本質(zhì)就是輸出指針地址,在32位編譯器下對于一個指針類型使用%x輸出和%p輸出其實是一樣的,只是后者會在前面加上“ox”(注意在64位編譯器下由于指針長度8byte,而整形只有4byte所以%x輸出的內(nèi)容只是%p的低位數(shù)據(jù));


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 分宜县| 加查县| 浑源县| 柘荣县| 大连市| 科技| 昌吉市| 十堰市| 博湖县| 育儿| 皮山县| 贺州市| 和田县| 荣成市| 如皋市| 上蔡县| 平顺县| 武穴市| 稷山县| 仁化县| 深州市| 耒阳市| 宣武区| 红安县| 宜昌市| 蕲春县| 商水县| 杭州市| 呼和浩特市| 广灵县| 正镶白旗| 曲水县| 吴堡县| 湘潭县| 宣化县| 巧家县| 兴安盟| 城市| 姚安县| 新丰县| 宿州市|