Time of Update: 2015-10-27
標籤:Blocks are Objective-C objects, which means they can be added to collections like NSArray or NSDictionary. Block文法——無參數版本定義(Block的值)^{ NSLog(@"This is a block");} 聲明void (^simpleBlock)(void);類似int i; 賦值simpleBlock = ^
Time of Update: 2015-10-27
標籤: //字典:(關鍵字 值)//插入代碼字太小// NSArray *array = [NSArray array];//空數組// NSDictionary *dictionary = [NSDictionary dictionary];//空字典
Time of Update: 2015-10-27
標籤: 1 //字典:(關鍵字 值) 2 // NSArray *array = [NSArray array];//空數組 3 // NSDictionary *dictionary = [NSDictionary dictionary];//空字典 4 NSDictionary *my = [NSDictionary dictionaryWithObject:@"objective" forKey:@"key"]; 5
Time of Update: 2015-10-27
標籤:Object和普通變數的區別If you’re used to using terms like the stack and the heap, a local variable is allocated on the stack, while objects are allocated on the heap.- (void)f{ int a = 2; //Stack NSString *s = @"Hello";
Time of Update: 2015-10-26
標籤:總體來說Objective-C的訪問成員變數可見度和C++基本一樣,只是多了個@package. 以下是詳細說明:例子:@interface CTPerson : NSObject{ @private int _age; @protected NSString *_name; @public double _height; @package double _weight;} @private:私人的,只有在本類的對象方法中可以直接存取它&
Time of Update: 2015-10-26
標籤:在MRC環境下,假定CTRoom對象是CTPerson的一個成員變數,那麼修改CTRoom對象時應注意,代碼如下:- (void) setRoom:(CTRoom *) room{ //需判斷新舊值是否相等,一旦相等則[_room release]等價於[room release],那麼[room retain]將拋出異常。 if(_room != room){ [_room release]; //釋放舊值 _room = [room
Time of Update: 2015-10-24
標籤:正所謂複合,便是定義的這個類中的成員是另外類的執行個體方法。也就是把其他對象作為自身的題部分,以提升自身的功能,就相當於C語言中的函數嵌套。下面是一段代碼(多個檔案放在一塊了): 1 /***Computer類的聲明***Computer類的聲明***Computer類的聲明***/ 2 #import <Foundation/Foundation.h> 3 4 @interface Computer : NSObject 5 6 @property (nonatomic,
Time of Update: 2015-10-23
標籤:0.判斷字串中是否有哪個字元if([roadTitleLab.text rangeOfString:@"qingjoin"].location !=NSNotFound) //判斷roadTitleLab.text 是否含有qingjoin } else { NSLog(@"no");? } 1.截取字串NSString*string
Time of Update: 2015-10-20
標籤:Classes, Objects,
Time of Update: 2015-10-19
標籤:* 代表有地址的指標id可以用來存放引用的指標,如:void drawShapes(id shapes[],int count){id shape = shapes[0];}[shape draw]在Objective_c中,方括還可以表示:用於通知某個對象改取做什麼.方括弧裡的第一項是對象,其餘部分是需要對象執行的操作.通知名稱為shape的對象執行draw操作.在Objective_c中,通知某個對象執行某種操作成為發送訊息(也有人稱之為"調用方法").代碼[shape draw]
Time of Update: 2015-10-19
標籤:英文原文:Understanding Automatic Reference Counting in Objective-C自動引用計數(Automatic Reference Counting, ARC)把壓在程式員們肩頭的管理記憶體的重擔卸載了不少,更不用說讓跟蹤記憶體流失那樣的煩心事也少了很多。不過,雖然ARC很棒,我們仍然不能完全把記憶體管理這回事兒拋在腦後。 這篇文章將要討論以下方面的問題,協助大家快速進入ARC的世界。 記憶體的引用計數:
Time of Update: 2015-10-17
標籤:關鍵字關鍵字的定義:被C語言賦予了特殊含義的單詞>關鍵字的特性:全部都是小寫>關鍵字在開發工具中會顯示特殊顏色 *編譯器嚴格區分大小寫
Time of Update: 2015-10-17
標籤:一、三種檔案匯入的方式比較: 類的前項聲明@class、import、include:1、採用@class
Time of Update: 2015-10-17
標籤:Block函數是一種類似於函數指標的函數,程式員只需要把需要操作的代碼封裝到定義的block中即可,以後需要使用時,直接調用,非常方便.... 舉例如下:自訂一個無參數的block#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool { //第一種形式:自訂無參數的block函數類型
Time of Update: 2015-10-16
標籤: 能給CGRect發訊息嗎? 答案是不能,只能給Objective-C對象發訊息,CGRect是結構體,所以不行!明確幾個概念receiver(訊息接收方):指標,指向執行方法的對象selector(選取器) :需要執行方法的方法名arguments(實參) :以變數形式傳給方法的數值[self.view setBackgroundColor:RED ];
Time of Update: 2015-10-14
標籤: 對象(類的執行個體對象)。簡言之,就是記憶體中的一塊資料,通過執行個體變數來儲存屬性的值 對象的使用。建立對象 ------》發送訊息---------》釋放對象(將指向對象的變數設定為nil)注意:對象的使用,不是直接操作對象本身,而是操作的指向對象的指標!!!(例如數組中包含的對象並不是對象本身,而是指向對象的指標) nil是值w為0 的指標,nil 是指標,表示沒有指向任何對象。(與c語言中的NULL,java中的null對應) 執行個體變數 &&
Time of Update: 2015-10-14
標籤:最近因為在ios應用開發中,考慮到一些公用方法的封裝使用,就決定使用單例模式的寫法了。。不知道,Object-c中的單例模式的寫法是否和java中的寫法是否有所區別?於是阿堂從網上一搜,發現“ Objective-C的singleton模式 ”一文被很多人轉載了,其主要內容如下Apple官方建議 由於自己設計單態模式存在一定風險,主要是考慮到可能在多線程情況下會出現的問題,因此蘋果官方建議使用以下方式來實現單態模式:static
Time of Update: 2015-10-13
標籤: 多態按字面的意思就是“多種狀態”。在物件導向語言中,介面的多種不同的實現方式即為多態。多態性是允許你將父物件設定成為和一個或更多的他的子物件相等的技術,賦值之後,父物件就可以根據當前賦值給它的子物件的特性以不同的方式運作。簡單的說,就是一句話:允許將子類類型的指標賦值給父類類型的指標。
Time of Update: 2015-10-13
標籤:1、 三角函數 double sin (double);正弦 double cos (double);餘弦 double tan (double);正切 2 、反三角函數 double asin (double); 結果介於[-PI/2, PI/2] double acos (double); 結果介於[0, PI] double atan (double); 反正切(主值),
Time of Update: 2015-10-11
標籤:在Java/C#等物件導向語言中,方法的存取權限可以通過public/private/protected來控制其存取權限。而在OC中,方法卻並沒有存取修飾詞。那麼,我們有沒有辦法使其方法變為私人?1. 如果一個方法不在標頭檔中聲明,那麼這個方法在編譯期,通過[receiver MethodName]的形式向對象發送訊息,編譯器會有警告,告訴你未找到該方法,但是實際運行時,依然可以正常運行原因:編譯時間,即使這個方法不在標頭檔中聲明,編譯器仍然會將方法的簽名編譯進類的方法列表中,