Time of Update: 2016-07-05
標籤:[精通Objective-C]前置處理器參考書籍:《精通Objective-C》【美】 Keith Lee目錄精通Objective-C前置處理器目錄前置處理器概述前置處理器語言前置處理器指令宏前置處理器概述預先處理根據一系列預定義規則,使用一些字元序列替換輸入的字元序列。這些操作主要分為以下三步:Created with Rapha?l
Time of Update: 2016-07-05
標籤:棧作為一種資料結構,是一種只能在一端進行插入和刪除操作的特殊線性表。它按照先進後出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,需要讀資料的時候從棧頂開始彈出資料(最後一個資料被第一個讀出來)。棧具有記憶作用,對棧的插入與刪除操作中,不需要改變棧底指標。棧是允許在同一端進行插入和刪除操作的特殊線性表。允許進行插入和刪除操作的一端稱為棧頂(top),另一端為棧底(bottom);棧底固定,而棧頂浮動;棧中元素個數為零時稱為空白棧。插入一般稱為進棧(PUSH),刪除則稱為退棧(PO
Time of Update: 2016-07-03
標籤:ocOC是C語言的一個擴充集,幾乎OS X或IOS平台上的所有應用程式都是該語言開發的。可以使用工具包Cocoa(針對OS X系統)和Cocoa Touch(針對IOS系統)來開發功能完備的Objective-C項目.Xcode是蘋果提供的用來建立IOS和OS X應用程式的開發環境點擊window菜單下的Welcome to Xcode選項或使用Command+Shift+l快速鍵就可以看到最近編輯過的項目File->New->New Project,選擇Mac OS
Time of Update: 2016-07-01
標籤:1、隨機數的使用 1)、arc4random() 比較精確不需要產生隨即種子 使用方法 : 通過arc4random() 擷取0到x-1之間的整數的代碼如下:
Time of Update: 2016-06-30
標籤:#import <Foundation/Foundation.h>#define onExit\ __strong void (^block)() __attribute__((cleanup(cleanup),unused)) = ^__attribute__((constructor)) void ExecuteBefore_main(){ printf("ExecuteBefore_main\n");}__attribute__((destructor))
Time of Update: 2016-06-27
標籤:OC是一門物件導向的語言,因此它也有類、對象、靜態\動態方法、成員變數的概念。這講就來建立第一個OC的類。一、文法簡介1.類在Java中,我們用1個.java檔案就可以描述清楚一個類;在OC中,一般用2個檔案來描述一個類:1> .h:類的聲明檔案,用於聲明成員變數、方法。類的聲明使用關鍵字@interface和@end。注意:.h中的方法只是做一個聲明,並不對方法進行實現。也就是說,只是說明一下方法名、方法的傳回值類型、方法接收的參數類型而已,並不會編寫方法內部的代碼。2&
Time of Update: 2016-06-20
標籤:一.開啟Xcode,建立Xcode項目 二.選擇最簡單的命令列項目因為我們只是學習OC文法,還未正式進入iOS開發,所以選擇命令列項目即可 三.輸入項目名稱,選擇Foundation架構進行建立項目 * Type一項一定要選擇Foundation架構,因為OC的常用類都包含在此架構中* 最下面的"Use Automatic...."暫時不要勾選,這跟記憶體管理有關係。講到記憶體管理的時候再說 四、點擊Run,運行項目* C語言的源檔案拓展名為".c"
Time of Update: 2016-06-19
標籤:前言目前來說,Objective-C(簡稱OC)是iOS開發的核心語言,在開發過程中也會配合著使用C語言、C++,OC主要負責UI介面,C語言、C++可用於圖形處理。近來,流傳Ruby、C#也可以開發iOS應用程式了,甚至還說Ruby比OC更適合寫iOS程式。這讓不少學習iOS開發的朋友感到很困擾,究竟學哪門語言好呢?OC會不會被Ruby、C#取代呢?如果被取代了,那我的OC不是白學了?下面我發表一下個人觀點:1>
Time of Update: 2016-06-18
標籤:Objective-C拓展了C,自然很多用法是和C一致的。比如浮點數轉化成整數,就有以下四種情況。 1.簡單粗暴,直接轉化float f = 1.5; int a; a = (int)f; NSLog("a = %d",a);輸出結果是1。(int)是強制類型轉化,丟棄浮點數的小數部分。2.高斯函數,向下取整float f = 1.6; int a; a = floor(f); NSLog("a =
Time of Update: 2016-06-18
標籤:在java中,我們經常使用的是單例模式,這些設計模式在ios開發中也比較常用,最近也在考慮使用在ios開發中使用單例模式在objective-c中,需要在.m檔案裡面定義個static變數來表示全域變數(和java裡面的類變數類似,但是在objective-c中,static變數只是在編譯時間候進行初始化,對於static變數,無論是定義在方法體裡面
Time of Update: 2016-06-13
標籤:今天開始用oc寫iOS程式,遇到的問題有1.在不同的類使用類的方法或者訪問類的屬性的時候(公開的方法或者屬性),方法或者屬性必須在類標頭檔中聲明。2.物件類型的聲明以及定義需要用*,表明這個是一個指向一塊記憶體空間的指標。基本類型則不需要。3.init方法的定義需要判斷是否初始化成功(self是否不為空白)。4.#define 可以預定義一段文本,在編寫代碼的時候可以用預定義的變數名代替這一塊文本。5.使用不同的類的時候要注意匯入標頭檔。6.for
Time of Update: 2016-06-10
標籤:Objective-C中的協議,相當於Java中的介面參考:http://www.cnblogs.com/zzy0471/p/3894307.html一個簡單的協議遵循:PersonProtocol.h@protocol 協議名<上級協議名>@required 必須要實現的方法@optional 可選實現的方法(可以不實現)@end 遵循協議前,需引入寫有協議的標頭檔Person.h 類名<協議名> 代表遵循此協議,
Time of Update: 2016-06-04
標籤:類目和延展的作用都是為了擴充一個類。Objective-C中的類目(Category)一、類目的定義和作用類目也叫分類,英文Category,在沒有原類.m檔案的基礎上,給該類添加方法。比如,NSString類原本沒有helloString方法,我們又沒有NSString類的原代碼,那我們想給NSString類添加一個helloString的方法,只有通過聲明子類或者類目才可以達到這個目的。二、類目的聲明:@interfaceNSString (hello)-
Time of Update: 2016-06-04
標籤:封裝的好處:過濾不合理的值屏蔽內部的賦值過程讓外界不必關注內部的細節繼承的好處:不改變原來模型的基礎上,拓充方法建立了類與類之間的聯絡抽取了公用代碼壞處:耦合性強(當去掉一個父類,子類將不能再使用)繼承的注意點:子類和父類不能有相同的成員變數子類可以重寫父類的方法子類方法和屬性的訪問過程:如果子類沒有,就去訪問父類的繼承和組合: 1 @interface Score : NSObject 2 { 3 int _cScore; 4 int _ocScore;
Time of Update: 2016-06-01
標籤:在之前的文章中我們介紹了Runtime是什麼,屬於理論性介紹,你看了上篇很迫切的想知道Runtime到底能幹什嗎?不要著急,這一篇Blog將將講解Runtime怎麼應用到實戰中Runtime官方文檔在這裡,包括了介面名字以及使用說明。下文講到的介面都能在此文檔中找到。 KVC中setValue中使用我們知道在KVC中如果直接setValue如果對象沒有這個屬性或者是變數就會直接Crash,如:RuntimeObj *obj = [[RuntimeOb
Time of Update: 2016-06-01
標籤:RunTime簡稱運行時。就是系統在啟動並執行時候的一些機制,其中最主要的是訊息機制。對於C語言,函數的調用在編譯的時候會決定調用哪個函數( C語言的函數調用請看這裡 )。編譯完成之後直接順序執行,無任何二義性。OC的函數調用成為訊息發送。屬於動態調用過程。在編譯的時候並不能決定真正調用哪個函數(事實證明,在編 譯階段,OC可以調用任何函數,即使這個函數並未實現,只要申明過就不會報錯。而C語言在編譯階段就會報錯)。只有在真正啟動並執行時候才會根據函數的名稱找
Time of Update: 2016-05-22
標籤:一.文法規範1.類:抽象的描述一件事物,比如將人、狗和貓抽象成動物類 在OC中用兩個檔案來描述一個類1> .h:類的聲明檔案,用於聲明成員變數和方法,類的聲明代碼在關鍵字@interface和@end之間;2>
Time of Update: 2016-05-18
標籤:本次的主要內容是塊,對初學者來說,代碼中涉及到塊的內容確實很容易讓人疑惑。首先談一下塊的概念,塊(Block)是蘋果為 C、C++以及 OC 添加的一種特性,它包含了部分代碼,可以被當做是參數傳遞給函數,並且它的實質是 OC 中的對象,也就是我們完全可以把它放到集合中,比如我們可以定義 NSArray 或者 NSDictionary 的對象來放置一系列的塊,然後通過代碼來決定執行哪一個塊。塊還有一大特性,就是可以從相應的代碼塊中截取變數的值,就像閉包或者 lambda
Time of Update: 2016-05-18
標籤:介紹Objective-C將許多決策從便宜時期和連結時期延後到運行時期。只要可能,它都動態做很多事情。這意味著它不僅需要一個編譯器,還需要一個運行時系統來執行編譯好的代碼。對於Objective-C來說,這個運行時系統就好像一個作業系統,使objective-c能夠正常工作。本文探究NSObject類,以及Objective-C程式如何和運行時系統互動。通過閱讀本文,你應該理解Objective-C的運行時系統如何工作,以及如何利用它。儘管對於寫一個Cocoa程式而言,你可能並不需要理解本
Time of Update: 2016-05-07
標籤:本節的內容主要是 OC 的語言基礎,對 OC 比較熟的可以不用看這一篇的內容了,基本也就是翻譯一下官方文檔。這一篇的主要內容就是關於 OC 的語言基礎,主要是針對值和集合而言。實際上 OC 中的值可以先分為兩類,一類是 C 語言提供的類型,一類是 OC 為我們提供的類型。C 語言提供的類型,就是 int, float, char 這些,而在 OC 中,我們則是用對象來表示一個值,所以主要類型是 NSInteger, NSUInteger 以及 CGFloat 這樣的形式。C