Time of Update: 2015-03-18
標籤:object-c oc學習 linux學習oc 如果想學習OC卻苦於沒有MAC電腦的同學,可以試著以下方法來解決我們利用GNUstep學習Objective-C第一步:安裝需要的軟體和編譯環境sudo apt-get install gnustepsudo apt-get install gnustep-devel第二步:寫第一個
Time of Update: 2015-03-16
標籤:這是一種權宜之計,在沒有Mac OS X的情況下,使用這套方案可以先行體會一下Objective-C。如果玩下來覺得感覺不錯,想深入發展,還是整台Mac吧。 一:編譯環境安裝GNUStep www.gnustep.org網站下載以下三個包,按順序安裝 1. gnustep-msys-system-0.30.0-setup.exe 2. gnustep-core-0.31.0-setup.exe 3.
Time of Update: 2015-03-05
標籤:Objective-C是蘋果軟體的程式設計語言,想要上機學習、調試,有一個整合式開發環境(IDE)方便很多。有三類方法搭建Objective-C的整合式開發環境:1) 使用蘋果的平台,整合式開發環境使用Xcode。但如果沒有蘋果平台,想在Windows環境下學習Objective-C,可以採用以下兩種方法:2) 在Windows環境下設定一個蘋果虛擬機器,但這對個人電腦的效能要求較高,不是所有個人電腦都可以,而且虛擬機器的
Time of Update: 2015-03-18
標籤:1.通知中樞(NSNotificationCenter)1.1.每一個應用程式都有一個通知中樞(NSNotificationCenter*)執行個體,專門負責協助不同對象之間的訊息通訊1.2.這就是觀察者模式(Observer),任何一個對象都可以向通知中樞發布通知(NSNotification*),描述自己在做什麼。其他感興趣的對象(Observer觀察者)可以申請在某個特定通知發布時(或在某個特定的對象發布通知時)收到這個通知 2.通知(NSNotification)2.1.
Time of Update: 2015-03-18
標籤:注釋雖然寫起來很痛苦,但注釋是保證代碼可讀性的關鍵。下面的規則給出了你應該什麼時候、在哪進行注釋。記住:儘管注釋很重要,但最好的代碼應該自成文檔。與其給類型及變數起一個晦澀難懂的名字,再為它寫注釋,不如直接起一個有意義的名字。當你寫注釋的時候,記得你是在給你的聽眾寫,即下一個需要閱讀你所寫代碼的貢獻者。大方一點,下一個讀代碼的人可能就是你!記住所有 C++
Time of Update: 2015-03-18
標籤:1》set方法記憶體管理的相關參數retain//release舊值,retain新值 (適用於OC對像類型)assign//直接賦值 (預設的參數,適用於非OC對象)copy//release舊值,copy新值2》是否產生setter或者getter方法readwrite//同時產生setter和getter方法readonly//只產生getter方法3》多線程管理nonatomic//效能高atomic//效能低【
Time of Update: 2015-03-17
標籤:建立一個xib檔案描述一個view的內部結構(假設叫做MJTgCell.xib) 建立一個自訂的類(自訂類需要繼承自系統內建的view, 繼承自哪個類, 取決於xib根對象的Class) 建立類的類名最好跟xib的檔案名稱保持一致(比如類名就叫做MJTgCell) 將xib中的控制項 和 自訂類的.m檔案
Time of Update: 2015-03-17
標籤:1.建立一個繼承自UITableViewCell的類 2.重寫initWithStyle:reuseIdentifier:方法添加所有需要顯示的子控制項(不需要設定子控制項的資料和frame, 子控制項要添加到contentView中)進行子控制項一次性的屬性設定(有些屬性只需要設定一次, 比如字型\固定的圖片) 3.提供2個模型資料模型: 存放文字資料\圖片資料frame模型:
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
標籤:原文轉自 http://www.rijiyuelei.me/2012/09/enum-and-string-conversion-in-objective-c/ 枚舉類型的使用優勢沒啥好說的。但經常需要將它與字串進行轉換方便顯示或其它需求。在常見的方案中,多是先聲明,然後在實現檔案裡建立一個映射表。這樣帶來的問題就是要分兩個檔案來管理,帶來管理不方便不好。使用前還在確保映射表已經初始化。顯然使用時還是有些許難受。如果全部改用宏來實現則會好管理很多,而且對於映
Time of Update: 2015-03-05
標籤:單例類是一種特殊的類,在一個進程種只會存在一個該類的對象,在iOS應用中只會出現一個對象。這種設計模式在系統架構中許多地方都使用了,如NSFileManager、UIApplication等。在ARC的環境下,介面檔案為://// DVISingleton.h//// Copyright (c) 2014 長沙戴維營教育. All rights reserved.//#import <Foundation/Foundation.h>@interface
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 // 字面量也是文法糖