Time of Update: 2015-12-10
標籤:.h :標頭檔。標頭檔包含類,類型,函數和常數的聲明。 .m :原始碼檔案。這是典型的原始碼副檔名,可以包含Objective-C和C代碼。 .mm
Time of Update: 2016-08-09
標籤:一.isa指標要認識什麼是isa指標,我們得先明確一點:在Objective-C中,任何類的定義都是對象。類和類的執行個體(對象)沒有任何本質上的區別。任何對象都有isa指標。那麼什麼是類呢?在xcode中用快速鍵Shift+Cmd+O 開啟檔案objc.h 能看到類的定義: 可以看出:Class 是一個 objc_class 結構類型的指標, id是一個 objc_object 結構類型的指標.我們再來看看 objc_class
Time of Update: 2015-09-04
標籤:UIScrollView控制項和UIPageControl控制項: UIScrollView用於顯示多於一個螢幕的內容,超出螢幕範圍的內容可以通過滑動進行查看,當然UIPagecontrol也能實現圖片分頁查看。
Time of Update: 2015-08-07
標籤:objective-c objective-c文法 物件導向 mac 軟體開發 Objective-C是Mac軟體開發領域最主要的開發語言,假如我們對C語言已經很熟悉或者具有物件導向語言的基礎,對於我們學習Objective-C將會非常有用。方法調用(Calling
Time of Update: 2015-06-18
標籤:Objective-C對象收到訊息之後,究竟會調用何種方法需要在運行期間才能解析出來。那你也許會問:與給定的選擇子名稱相應的方法是不是也可以在runtime改變呢?沒錯,就是這樣。若能善用此特性,則可發揮出巨大優勢,因為我們既不需要原始碼,也不需要通過繼承子類來覆寫方法就能改變這個類本身的功能。這樣一來,新功能將在本類的所有執行個體中生效,而不僅限於覆寫了相關方法的那些子類執行個體。此方案就是大名鼎鼎的「method
Time of Update: 2016-04-03
標籤:一、 說明 轉盤一共由四部分組成,底盤,旋轉盤,轉盤指標,開始按鈕,全部貼在 self.view上,另外有12個展示中獎等級的UILabel貼在旋轉盤上,動畫使用CABasecAnimation類實現。 二、代碼 @interface AViewController (){ UIButton *centerButton; CGAffineTransform rotatePointView ; UIImageView
Time of Update: 2015-03-18
標籤:對於易維護的代碼而言,命名規則非常重要。Objective-C 的方法名往往十分長,但代碼塊讀起來就像散文一樣,不需要太多的代碼注釋。當編寫純粹的 Objective-C 代碼時,我們基本遵守標準的 Objective-C naming rules,這些命名規則可能與 C++ 風格指南中的大相徑庭。例如,Google 的 C++ 風格指南中推薦使用底線分隔的單詞作為變數名,而(蘋果的)風格指南則使用駝峰命名法,這在 Objective-C
Time of Update: 2015-03-17
標籤:先搞清楚誰是誰的代理(delegate) 定義代理協議,協議名稱的命名規範:控制項類名 + Delegate 定義代理方法代理方法一般都定義為@optional代理方法名都以控制項名開頭代理方法至少有1個參數,將控制項本身傳遞出去 設定代理(delegate)對象 (比如myView.delegate =
Time of Update: 2015-03-14
標籤:超類即父類,通過 [super setName: @"a"] 可以調用超類方法複合是指一個對象由其他多個對象組成對象初始化@interface Car : NSObject( Engine *engine;)@end@implementation Car- (id) init{ if(self = [super init]){ engine = [Engine new]; } return (self);}
Time of Update: 2015-03-07
標籤:1.有過物件導向的人知道,self相當於this,super相當於調用父類的方法2.self是類的隱藏的參數,指向當前調用方法的類,另一個隱藏參數是_cmd,代表當前類方法的selector。super並不是隱藏的參數,它只是一個”編譯器指示符”,它和self指向的是相同的訊息接受者,也就是說, [self class]=[super
Time of Update: 2015-03-01
標籤:截取整個螢幕大小:1 UIGraphicsBeginImageContext(self.view.bounds.size);2 3 [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];4 5 UIImage * viewImage = UIGraphicsGetImageFromCurrentImageContext();6 7 UIGraphicsEndImageContext();8
Time of Update: 2015-01-15
標籤: 詳解Objective-C中靜態變數使用方法Objective-C中靜態變數使用方法是本文要介紹的內容,Objective-C 支援全域變數,主要有兩種實現方式:第一種和C/C++中的一樣,使用"extern"關鍵詞;另外一種就是使用單例實現。(比如我們經常會把一個變數放在AppDelegate裡面作為全域變數來訪問,其中AppDelegate就是一個單例類)在Objective-C中如何?像C++中那樣的靜態成員變數呢?你需要做的是在一個類A的implementat
Time of Update: 2014-12-26
標籤:本篇文章由:http://www.sollyu.com/objective-c-synchronization-requests-requests-for-asynchronous-requests-get-and-post-requests/說明1 同步請求可以從網際網路請求資料,一旦發送同步請求,程式將停止使用者互動,直至伺服器返回資料完成,才可以進行下一步操作,2 非同步請求不會阻塞主線程,而會建立一個新的線程來操作,使用者發出非同步請求後,依然可以對UI進行操作,程式可以繼續運行3
Time of Update: 2018-12-05
1、分類(category)使用Object-C中的分類,是一種編譯時間的手段,允許我們通過給一個類添加方法來擴充它(但是通過category不能添加新的執行個體變數),並且我們不需要訪問類中的代碼就可以做到,這點和javascript中使用原型來定義屬性有點類似。我們可以為一個類建立一個新的方法,而不需要在代碼中編輯類定義。下面就是定義並使用分類的例子程式,通過下面代碼,我們可以給Object-C中的NSString
Time of Update: 2018-12-07
MBProgressHUD(進展指示符庫)地址:https://github.com/jdg/MBProgressHUD蘋果的應用程式一般都會用一種優雅的,半透明的進度顯示效果,不過這個API是不公開的,因此你要是用了,很可能被清除出AppStore。而 MBProgressHUD提供了一個替代方案,而且在使用者角度上,實現的效果根本看不出和官方程式有什麼差別。同時還提供了其他附加功能,比如虛擬進展
Time of Update: 2018-12-07
上一章講了對類的方法進行擴充, 相關引用就是為現存的 class 增加另外的執行個體可引用變數(通常是一個靜態變數),這個功能只在 iOS and OS X v10.6 以後提供。引入這種機制的原因類同於類的方法擴充。static char overviewKey; NSArray *array = [[NSArray alloc] initWithObjects:@"One", @"Two", @"Three", nil];// For the purposes of
Time of Update: 2018-12-07
通過分類的方式可以為已存在的類添加新的方法,甚至不需要源碼,有點像C#中的擴充方法。這時提供一個例子是把一個字串轉換為駝峰式並且出掉單詞空格。NSString+CamelCase.h#import <Foundation/Foundation.h>//NSString 表示將要添加分類的類名稱,該類必須是已存在的。//CamelCase 是為類添加的分類的名稱。//只能添加方法,不能添加變數。//標頭檔命名慣例:ClassName+CategoryName.h@interface
Time of Update: 2018-12-07
/* * 統計文字檔中單詞的長度 * */#import <Foundation/Foundation.h>int main (int argc, const char * argv[]){FILE *wordFile = fopen("words.txt","r");char word[100];while (fgets(word,100,wordFile)) {//分行符號修改為 '\0'word[strlen(word)-1] = '\0';NSLog(@"%s is %d
Time of Update: 2018-12-07
從第一個應用程式HelloWorld開始:objective-c版本:#import <Foundation/Foundation.h>int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];// insert code here... NSLog(@"Hello, World!"); [pool
Time of Update: 2018-12-07
@interface NSString (MyExtensions) - (NSString *) md5; @end @implementation NSString (MyExtensions) - (NSString *) md5 { const char *cStr = [self UTF8String]; unsigned char result[16]; CC_MD5( cStr, strlen(cStr), result ); // This is the