Time of Update: 2015-03-05
標籤:Objective-C是蘋果軟體的程式設計語言,想要上機學習、調試,有一個整合式開發環境(IDE)方便很多。有三類方法搭建Objective-C的整合式開發環境:1) 使用蘋果的平台,整合式開發環境使用Xcode。但如果沒有蘋果平台,想在Windows環境下學習Objective-C,可以採用以下兩種方法:2) 在Windows環境下設定一個蘋果虛擬機器,但這對個人電腦的效能要求較高,不是所有個人電腦都可以,而且虛擬機器的
Time of Update: 2015-03-15
標籤:swizzling objective ios 奇技淫巧 指過於奇巧而無益的技藝與製品. IMS指的是 Instance Method Swizzling, 執行個體方法混淆. 下段代碼是一個Instance Method Swizzling和一個Method Swizzling的例子:// Man.m- (void)run{ NSLog(@"%s, %@", __func__, _
Time of Update: 2015-03-14
標籤:控制項 編程 ios objective-c Objective-C 奇巧淫技–delegate掛鈎奇技淫巧 指過於奇巧而無益的技藝與製品.需求說明在實際的編程過程中,我們總要定製一些控制項,在定製的過程裡,有時喜歡自己實現部分delegate方法// MYScrollView.m- (instancetype)init{ ...
Time of Update: 2015-03-13
標籤:代碼塊本質上是和其它變數相似。不同的是,代碼Block Storage的資料是一個函數體。使用代碼塊是,你能夠像調用其它標準函數一樣,傳入參數數,並得到傳回值。脫字元(^)是塊的文法標記。依照我們熟悉的參數文法規約所定義的傳回值以及塊的主體(也就是能夠執行的代碼)。是怎樣把塊變數賦值給一個變數的文法解說:依照調用函數的方式調用塊物件變數就能夠了:int result = myBlock(4); // result是 281、參數是NSString*的代碼塊 void
Time of Update: 2015-03-10
標籤:先把參考的文檔列出來:http://www.cnblogs.com/supercheng/archive/2012/11/26/singlemodal.htmlhttp://arthurchen.blog.51cto.com/2483760/642536/http://blog.csdn.net/duboleon/article/details/6337174https://developer.apple.com/legacy/library/documentation/Cocoa/Con
Time of Update: 2015-03-06
標籤:ios suck 這幾天把一段邏輯從服務端搬到用戶端,基本上就是把js翻譯成oc。直接對比,明顯感到oc太爛了(僅針對語言本身,iOS應用程式框架還湊合)比如下面這行JS代碼:var monthtag = bill_year + "-" + bill_month;寫成OC以後,非常晦澀。當然用NSMutableString能有個append方法,但是噁心程度也差不多:NSString
Time of Update: 2015-03-05
標籤:interface category private public 編譯器 Objective-C 2.0增加了class extensions用於解決兩個問題:允許一個對象可以擁有一個私人的interface,且可由編譯器驗證。支援一個公有唯讀,私人可寫的屬性。私人介面(Private
Time of Update: 2015-03-05
標籤:%@ 對象%d, %i 整數%li 長整型%u 無符號整形%f 浮點/雙字%x, %X 二進位整數%o 八進位整數%zu size_t%p 指標%e 浮點/ 雙字 (科學計算) (double)%g 浮點/ 雙字 (double)%s C字串%.*s Pascal字串%c 字元%C unichar%lld 64位長整數(long long)%llu 無符號64位長整數%Lf 64位雙數%%
Time of Update: 2015-03-04
標籤:Block(oc 的資料類型,很常用,本質是c結構體)類似內嵌函式,從原始碼層看,有函數的結構,而在編譯後,卻不具備函數的性質。編譯時間,類似宏替換,使用函數體替換調用處的函數名Block封裝了一段代碼,可以在任何時候執行Block可以作為函數參數或者函數的傳回值,而其本身又可以帶輸入參數或傳回值。蘋果官方建議盡量多用block。在多線程、非同步任務、集合遍曆、集合排序、動畫轉場用的很多Blocks的定義:int (^MySum)(int, int) = ^(int a, int b) {
Time of Update: 2015-03-04
標籤:ARC(是編譯器特性)ARC是自iOS 5之後增加的新特性,完全消除了手動管理記憶體的煩瑣,編譯器會自動在適當的地方插入適當的retain、release、autorelease語句。你不再需要擔心記憶體管理,因為編譯器為你處理了一切ARC 是編譯器特性,而不是 iOS 運行時特性,它也不是類似於其它語言中的垃圾收集器。因此 ARC 和手動記憶體管理效能是一樣的,有時還能更加快速,因為編譯器還可以執行某些最佳化ARC基本原理(不是類似 java 的記憶體回收機制)ARC
Time of Update: 2015-03-01
標籤:NSString,不可變字串,即建立以後內容和長度不可修改.NSMutableString,可變字串,即建立以後內容還可以修改.不可變字串(NSString)建立字串1 // 建立字串2 NSString *str1 = [[NSString alloc] initWithString:@"QQ"]; 3 NSString *str2 = [NSString stringWithString:@"WeChat"];4 // 字面量建立字串5 // 字面量也是文法糖
Time of Update: 2015-03-01
標籤:一,retain, copy, assign區別 概念: assign: 簡單賦值,不更改索引計數(reference counting)。 copy: 建立一個索引計數為1的對象,然後釋放舊對象 retain:釋放舊的對象,將舊對象的值賦予輸入對象,再提高輸入對象的索引計數為1 例: 1 NSString *pt = [[NSString alloc]
Time of Update: 2015-03-01
標籤:iOS中集合類與數學中的集合一樣,集合中元素必須是唯一的,儲存元素是無序的,儲存元素必須是物件類型.集合分為不可變集合(NSSet)和可變集合(NSMutableSet)不可變集合(NSSet)建立集合對象1 1 NSSet *set = [NSSet setWithObjects:@"a", @"p", @"p", nil];2 2 NSLog(@"set: %@", set);3 // 擷取集合中元素個數4 3 NSLog(@"count: %ld", set.count);5 //
Time of Update: 2015-03-01
標籤:字典是用於儲存具有映射關係(key-value對)的資料集合.一個key-value對認為是一個條目(Entry),字典是儲存key-value對的容器.字典類的特點與數組不同,字典靠key存取元素;key值不能重複,value必須是對象;索引值對在字典中是無序儲存的.字典分為不可變字典(NSDictionary)和可變字典(NSMutableDictionary).不可變字典(NSDictionary)字典一旦建立,索引值對不可更改,不可添加,
Time of Update: 2015-03-01
標籤:今天整理一下關於Objective-C Literals的內容,Literals翻譯成字面量或者字面值,就是直接被寫到原始碼中的值。這不是一個陌生的概念,我們在寫程式的時候能頻繁的見到。我們很早就見過NSString 字面量了: NSString *greeting = @"Hello
Time of Update: 2015-02-22
標籤:架構指objective-c的foundation庫,下面的例子中給出幾個常見用的類及其方法。數值對象 NSNumber *intNum; NSNumber *longNum; NSNumber *floatNum; intNum = [NSNumber numberWithInteger:12]; NSLog(@"%i", [intNum integerValue]);
Time of Update: 2015-02-22
標籤:本文的目的是來瞭解Objective-C中NSAutoreleasePool使用方法,Objective-C的Foundation庫實際上是種運行級對象系統,與一般的對象語言,例如C++,Java不一樣,而與COM或者Corba一樣,對象,不一定建立在使用者應用程式的地址空間中,有可能是建立在另一個地址空間中,甚至建立在別的機器上!所以,Objective-C的對象(全部繼承自NSObject),就是使用引用計數的方法來管理對象的存活,眾所周知,當引用計數為0時,對象就被銷毀了。操作非常簡
Time of Update: 2015-02-22
標籤:本文主要記錄objective-c
Time of Update: 2015-02-02
標籤:1.為什麼要有類別?在現有類的基礎上做擴充,可以採用繼承和組合兩種方法來實現,但是OC為什麼還要有類別這種方式呢?想想這樣一個應用情境,要建立一個字典,key是字串,value是字串的長度。一般的做法是: NSMutableDictionary *dict = [NSMutableDictionary dictionary]; NSString* str = @"hello"; NSNumber* num1 = [NSNumber
Time of Update: 2015-02-01
標籤:1.類裡面經常有一些變數需要進行set和get操作,OC中提供了方便的屬性@property來替換set和get方法,這樣能減少頻繁且簡單的重複代碼。如下代碼:@interface Person : NSObject@property NSString* strName;@property int nAge;@end@implementation Person@synthesize strName;@synthesize