標籤: 記憶體管理方針用於記憶體管理的基本模型採用引用計數的環境之中提供的組合方法中定義在NSObject協議和標準方法的命名規範。NSObject類也定義了一個方法:dealloc,當調用一個對象時自動回收,本文描述了Cococa程式中你需要知道的基本規則,同時提供了許多正確的使用樣本基本的記憶體管理規則方針記憶體管理模型是基於對象的所有權。任何對象都可能有一個或者多個所有者,只要一個對象至少還有一個所有者,就讓他繼續存在,如果一個對象沒有所有者,正在啟動並執行系統就會把
標籤:編寫Objective-C程式時,總會用到某幾個類,它們屬於Foundation架構。雖然從技術上來說,不用Foundation架構也能寫出Objective-C代碼,但實際上卻經常要用到此架構。這幾個類是NSString、NSNumber、NSArray、NSDictionary。從類名上即可看出各自所表示的資料結構。Objective-C以文法繁雜而著稱。事實上的確是這樣。不過,從Objective-C
標籤:現在每天要抓緊的學習了,所以爭取每天能學習兩個知識點,儘快把OC學習完,然後進入開發階段! 加油.#import <Foundation/Foundation.h>int main(int argc, const char * argv[]){ @autoreleasepool { #pragma mark - NSDictionary
標籤:obj中建立新對象有兩種方式:[classname new]和[[classname alloc] init]。兩種方法等價,Cocoa慣例是使用alloc和init。 1.指派至: allocation是一個新對象誕生過程,從OS獲得一塊記憶體並指定為存放對象的執行個體變數的位置。同時alloc方法還將這塊記憶體地區全部初始化為0。BOOL初始化為NO,int初始化為0,float初始化為0.0,指標初始化為nil。&
標籤:Objective-C控制語句有以下三類:分支語句:if-else,switch迴圈語句:while,do-while,for與程式轉移相關的跳躍陳述式:break,continue,goto. 分支語句 分支語句提供了一種控制機制,使得程式的執行可以跳過某些語句不執行,而轉去執行特定的語句。1.條件陳述式:if-else2.多分支語句:switch
標籤:運算子可以分為以下幾種:算術運算子:+,-,*,/,%,++,—-。關係運算子:<,>,<=,>=,==,!=布爾邏輯運算子:!,&&,||位元運算符:|,&,^,~,>>,<<賦值運算子:+=、-=、*=、=/條件運算子:?:注意:1.布爾邏輯運算子中有兩個比較特殊的運算子符號,“&&”和“||”。其中,“&&&r
標籤:@代表“Objective-C”的標誌,證明您正在使用Objective-C語言 Objective-C語言關鍵詞,@property與@synthesize配對使用。 功能:讓編譯好器自動編寫一個與資料成員同名的方法聲明來省去讀寫方法的聲明。 如:1、在標頭檔中:C代碼 @property int count; 等效於在標頭檔中聲明2個方法:C代碼
標籤:1. main函數 2. UIApplicationMain* 建立UIApplication對象* 建立UIApplication的delegate對象 3.1 delegate代理開始處理(監聽)系統事件 (沒有storyboard)* 程式啟動完畢的時候, 就會調用代理的application:didFinishLaunchingWithOptions:方法*
標籤:1.1 - (void)layoutSubviews;* 當一個控制項的frame發生改變的時候就會自動調用* 一般在這裡布局內部的子控制項(設定子控制項的frame)* 一定要調用super的layoutSubviews方法 1.2 - (void)didMoveToSuperview;* 當一個控制項被添加到父控制項中就會調用 1.3 - (void)willMoveToSuperview:(UIView *)newSuperview;*
標籤:int是靜態類型NSInteger是動態類型蘋果官方推薦使用NSInteger,因為在蘋果的api實現中,NSInteger是一個封裝,它會識別當前作業系統的位元,自動返回最大的類型。定義的代碼類似於下: #if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 ||
標籤:一。基礎資料型別 (Elementary Data Type) 1.一般的電腦語言在定義變數的時候,需要提供給兩個內容:類型和名字。 比如:int myClassID; 2.在Xcode中,無論你使用的是GCC編譯器還是LLVM編譯器,如果我們沒有為整型變數的值進行初始化,在編譯的過程中,編譯器都會自動為其附上值0. 3.整數類型:三種。int、short、long。 浮點數類型:兩種:float、double。 字元類型:一種:char。 指標類型:*
標籤:1.相容性 OC是一種物件導向的C語言,在OC的代碼中可以有C和C++語句,它可以調用C函數,也可以通過C++對象存取方法。2.字串 OC通常不使用C語言風格的字串。大多數情況下(CoreFoundation中的字串是C語言的)是使用Foundation架構的NSString類型的字串。NSString類提供了字串的類封裝,支援Unicode、printf風格的格式化工具等等。它是在普通的雙引號字串前放置一個@符號。如:NSString *myString =
標籤: Objective-C中的分類允許我們通過給一個類添加方法來擴充它(但是通過category不能添加新的執行個體變數),並且我們不需要訪問類中的代碼就可以做到。Objective-C中的協議是普遍存在的介面定義方式,即在一個類中通過@protocol定義介面,在另外類中實現介面,這種介面定義方式也成為“delegation”模式,@protocol聲明了可以唄其他任何方法類實現的方法,協議僅僅是定義一個介面,而由其他的類去負責實現。在本章中,我們來看看r
標籤:在前面一篇文章中,我們介紹了Runtime中與類和對象相關的內容,從這章開始,我們將討論類實現細節相關的內容,主要包括類中成員變數,屬性,方法,協議與分類的實現。本章的主要內容將聚集在Runtime對成員變數與屬性的處理。在討論之前,我們先介紹一個重要的概念:類型編碼。類型編碼(Type
標籤:1.通知中樞(NSNotificationCenter)1.1.每一個應用程式都有一個通知中樞(NSNotificationCenter*)執行個體,專門負責協助不同對象之間的訊息通訊1.2.這就是觀察者模式(Observer),任何一個對象都可以向通知中樞發布通知(NSNotification*),描述自己在做什麼。其他感興趣的對象(Observer觀察者)可以申請在某個特定通知發布時(或在某個特定的對象發布通知時)收到這個通知 2.通知(NSNotification)2.1.
標籤:1.建立一個繼承自UITableViewCell的類 2.重寫initWithStyle:reuseIdentifier:方法添加所有需要顯示的子控制項(不需要設定子控制項的資料和frame, 子控制項要添加到contentView中)進行子控制項一次性的屬性設定(有些屬性只需要設定一次, 比如字型\固定的圖片) 3.提供2個模型資料模型: 存放文字資料\圖片資料frame模型:
標籤:swizzling objective ios 奇技淫巧 指過於奇巧而無益的技藝與製品. IMS指的是 Instance Method Swizzling, 執行個體方法混淆. 下段代碼是一個Instance Method Swizzling和一個Method Swizzling的例子:// Man.m- (void)run{ NSLog(@"%s, %@", __func__, _
標籤:控制項 編程 ios objective-c Objective-C 奇巧淫技–delegate掛鈎奇技淫巧 指過於奇巧而無益的技藝與製品.需求說明在實際的編程過程中,我們總要定製一些控制項,在定製的過程裡,有時喜歡自己實現部分delegate方法// MYScrollView.m- (instancetype)init{ ...
標籤:代碼塊本質上是和其它變數相似。不同的是,代碼Block Storage的資料是一個函數體。使用代碼塊是,你能夠像調用其它標準函數一樣,傳入參數數,並得到傳回值。脫字元(^)是塊的文法標記。依照我們熟悉的參數文法規約所定義的傳回值以及塊的主體(也就是能夠執行的代碼)。是怎樣把塊變數賦值給一個變數的文法解說:依照調用函數的方式調用塊物件變數就能夠了:int result = myBlock(4); // result是 281、參數是NSString*的代碼塊 void
標籤:ios suck 這幾天把一段邏輯從服務端搬到用戶端,基本上就是把js翻譯成oc。直接對比,明顯感到oc太爛了(僅針對語言本身,iOS應用程式框架還湊合)比如下面這行JS代碼:var monthtag = bill_year + "-" + bill_month;寫成OC以後,非常晦澀。當然用NSMutableString能有個append方法,但是噁心程度也差不多:NSString