標籤: 1 #pragma mark ---------------可變數組----------------- 2 // 可以在數組裡面進行增刪改的操作 3 // 4 // 可變數組與數組的關係:可變數組是數組的
標籤: 1 #pragma mark -----------數組的初始化方式-------------- 2 // insert code here... 3 // NSLog(@"Hello, Wor
標籤:objective objective-c 防禦式編程 優點:防禦式編程能夠在開發早期發現錯誤。例代碼:下面是相關存取方法的實現代碼。- (void)setTire:(Tire *)tire atIndex:(int)index { if (index < 0 || index > 3) { NSLog (@"bad index (%d) in
標籤:objective 執行個體 oc objective-c 執行個體變數 一、執行個體變數的可見度(存取權限)二、方法OC中的?方法分兩種:類?方法和執行個體?方法。類?方法:只能類使?用,例如:+(id)alloc 注:類?方法中不能使?用 執行個體變數執行個體?方法:只能對象使?用,例如: -(void)sayHi
標籤:new objective super objective-c 使用new建立對象時,系統其實在後台執行了兩個步驟: 第一步:為對象分配記憶體,即對象獲得一個用來存放執行個體變數的記憶體塊; 第二部:自動調用 init 方法,使對象進入可用狀態。註:alloc 的內部實現用的是 new。@implementation Car- (id) init{
標籤:objective super objective-c init在 init 方法中,下面這行代碼看起來有些奇怪。if (self = [super init])下面我們來解釋這行代碼的意思。為了讓超類(在這裡是NSObject)將所有需要的初始化工作一次性完成,你需要調用 [super init]。init 方法傳回值(id類型資料,即泛型對象指標)就是被初始化的對象。 將
標籤:1.前言相信接觸過OC的對NSLog都很熟悉,細心查看NSLog的原始定義,會發現,他的原型如下:FOUNDATION_EXPORT void NSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);路徑在:OS X
標籤: 學過java的同學都知道Interface(介面),那麼在Objective-C中有沒有介面呢?其實 Objective-C中用Protocol(協議)來實現的,在Objective-C具體怎麼用,我們直接看代碼例子。StudentProtocol//////////////////// .h ///////////////////// #import <Foundation/Foundation.h>@protocol
標籤:塊(block)的用法 //無參無傳回值 void (^message)(void) = ^{ NSLog(@"Hello World!\n"); }; //有參有傳回值 NSString *(^repeat)(NSString *, int) = ^(NSString *str, int times) { NSMutableString *result = [
標籤:在類的標頭檔中盡量少引入其他標頭檔使用“向前聲明”,在確有需要時才引入標頭檔,減少類的使用者所需引入標頭檔的數量,減少編譯時間。向前聲明同樣解決了兩個類相互引用的問題。使用#import而非#include指令雖然不會導致死迴圈,但兩個類裡面有一個無法被正確編譯。每次在標頭檔中引用其他標頭檔之前,都要先問問自己這樣做是否有必要,如果可以用向前聲明取代引用,那麼就用向前聲明代替引入。《Effective Objective-C》讀書筆記(2)
標籤:
標籤: Objective-C中得get和set方法 set方法 1.作用: 提供一個方法給外界設定成員變數值,可以在方法裡面對參數進行相應過濾 2.命名規範: 1> 方法名必須以set開頭 2> set後面跟上成員變數的名稱,成員變數的首字母必須大寫 3> 傳回值一定是void 4> 一定要接收一個參數,而且參數類型跟成員變數類型一致 5> 形參的名稱不能跟成員變數名一樣-
標籤:關聯對象給分類添加“屬性”咱們知道,分類中可以添加方法,卻無法添加屬性。那咱們有其他的方法來實現嗎? 先來看看下面這段代碼:@interface UIView (nl_Frame)@property (nonatomic, assign) CGFloat nl_width;@end @implementation UIView (nl_Frame)- (void)setNl_width:(CGFloat)nl_width { CGRect frame = self.frame;
標籤:------Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流! -------一道課後習題引發的思考/*需求:設計一個類Point2D,用來表示二維平面中某個點1> 屬性* double x* double y 2> 方法* 屬性相應的set和get方法* 設計一個對象方法同時設定x和y* 設計一個對象方法計算跟其他點的距離* 設計一個類方法計算兩個點之間的距離 3> 提示* C語言的math.h中有個函數:double
標籤:objective-c 屬性 成員變數 類 在Objective-C的類與對象的概念中. 成員變數與屬性的區別與聯絡一直沒有搞清楚. 直到學習了慕課網上的這個課程Objective-C物件導向初體驗, 才算真正有了點感覺了. 最關鍵的結論就是: 類內使用成員變數{}, 類外使用屬性@property.成員變數成員變數及其get方法.首先,
標籤:ios 設計 介面 奇技淫巧 指過於奇巧而無益的技藝與製品. 轉載請註明出處 uxyheaven csdn部落格 其實這個技巧特定情況下,要求不高還挺是有用的.我們原本有個介面1,設計的….,為了靈活性嘛,就用了字典- (void)method1:(NSDictionary *)dic{ NSString *name = dic[@"name"]; NSLog(@"%s,
標籤:如果你使用過MRR,autorelease這個關鍵字應該是太熟悉了,每次在我們產生一個新的對象返回時,都需要向這個對象發送autorelease訊息,目的是為了延時釋放建立的對象。那到底是在什麼時候,這個對象會被釋放呢?有什麼方法可以更快的釋放一個autorelease對象呢?咱們先來看一個現象:@property (weak, nonatomic) NSString *weakString;- (void)viewDidLoad { [super viewDidLoad];
標籤:oc copy oc mutable
標籤:KVC索引值對是後期在開發項目的時候會經常用到的,如果搞不清楚那個是key,那個是Value,那麼就會很吃虧的,我個人是在這方面吃了很多的虧,特別是在做通訊錄的時候. 也許剛開始接觸的不過是簡單的字典,或者是簡單的數組,但等到後期遇到字典裡包含數組,數組中還有數組,然後在套字典等等,那就SB了.KVC:全拼是(Key-Value-Coding),索引值編碼. 是一種間接訪問執行個體變數的方法. key:鍵,用於標識執行個體變數.
標籤:眾所周知,在Objective-C中的記憶體管理是通過一種叫做“引用計數器”的機制管理的。舉例, 當我聲明了一個新的執行個體NSData *data = [[NSData alloc] init]現在,記憶體中有一個NSData類型的對象,名叫data。它的引用計數器的值為1. 如果我再次引用它的時候,他的引用計數值會+1變為2.使用完畢後需要調用[data release];來使引用計數-1.