Time of Update: 2017-01-18
NSNumber的常用方法在Objective-c中有int的資料類型,那為什麼還要使用數字對象NSNumber?這是因為很多類(如NSArray)都要求使用對象,而int不是對象。NSNumber就是數字對象我們可以使用NSNumber對象來建立和初始化不同類型的數字對象。NSNumber + (NSNumber *)numberWithInt:(int)value; + (NSNumber *)numberWithDouble:(double)
Time of Update: 2014-10-11
標籤:ios開發// CGPoint 結構體資料原型, 用於聲明一個點;/* Points. */ struct CGPoint { CGFloat x; CGFloat y;};typedef struct CGPoint CGPoint; typedef CGPoint NSPoint;// 用法; // 1. 聲明一個CGPoint變數,初始化時賦值方式1;
Time of Update: 2014-08-28
標籤:style blog http color os 使用 io strong ar 代碼塊本質上是和其它變數相似。不同的是,代碼Block
Time of Update: 2014-08-27
標籤:style blog http color 使用 io ar 資料 2014
Time of Update: 2014-08-27
標籤:排序 compare campare陷阱NSString有多個compare相關方法:- (NSComparisonResult)compare:(NSString *)string;- (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask;-
Time of Update: 2014-08-17
標籤:http java 使用 os io 檔案 for ar Objective-C 下用 NSArray 和 NSMutableArray 定義二維數組跟多維陣列 目錄 問題描述 Objective-C
Time of Update: 2014-08-10
標籤:協議 代理 匿名對象 第23條:通過委託與資料來源協議進行對象間通訊 對象之間經常需要相互連信,而通訊方式有很多。OC開發人員廣泛使用一種名叫“委託模式”(Delegate
Time of Update: 2014-07-16
標籤:des http java strong width art NSDate類用於儲存時間值,同時提供了一些方法來處理一些基於秒層級時差(Time Interval)運算和日期之間的早晚比較等。 1. 建立或初始化可用以下方法用於建立NSDate執行個體的類方法有+
Time of Update: 2014-07-10
標籤:objective-c 結構 對象 類 typedef Objective-C中常用的結構體NSRange,NSPoint,NSSize(CGSize),NSRect1 NSRangeNSRange 的原型為typedef struct _NSRange { NSUInteger location;
Time of Update: 2018-12-05
Class A:@interface ClassA : NSObject{}@property(nonatomic, retain) Foo* foo;@end Class B: @interface ClassB : NSObject{Foo* foo;}@property(nonatomic, retain) Foo* foo;@end 上面兩個類的不同是:第二個類包含一個名字為"foo"的 ivar。如果在類的實現部分包含了"@synthesize
Time of Update: 2018-12-05
在 Windows 中主要有兩種鉤子:訊息鉤子與函數鉤子,有時在實現某些功能時必須用鉤子。對函數掛鈎子主要是進行入口地址的替換,廣義的理解很多東西都是鉤子,比如中斷向量表。可以對 C++ 中的靜態函數與虛函數掛鈎子,但是很難對普通函數掛鈎子,主要原因是C++沒有統一的 ABI標準。但是可以對 Objective-C 掛鈎子,而且OC提供了一些運行時方法,讓掛鈎子相對簡單,比如:不需要用彙編來改地址。下面以對 UIWebView 的 loadRequest: 掛鈎子作為例子,來說明如何在
Time of Update: 2018-12-07
Object-C 提供類似 Java / C++風格的錯誤處理模型,當使用 -fobjc-exceptions 開關(gcc > 3.3)時,它可以工作,但是只限於 OS X v10.3 以後的版本,之前的版本並不提供這一支援。使用錯誤捕獲的原則與其它語言類似:你不能用它來當作正常的處理流的判斷條件,而把它僅僅當作“意外”可以使用多個 @catch 塊來捕獲不同的錯誤類型。Cup *cup = [[Cup alloc] init]; @try { [cup
Time of Update: 2018-12-07
if(self = [ super init] { …若要超類可以完成所需的一次性初始化,需要調用[super init]。init方法返回的值(id型資料,即泛型對象指標)描述了被初始化的對象。將[super init]的結果賦給self是Objective-C的標準慣例。這麼做是為了防止超類在初始化過程中返回的對象不同於原先建立的對象。- (id) init// 初始化對象{if (self = [super init]) {// 初始化內容}return
Time of Update: 2018-12-07
4.Cocoa記憶體管理規則1)當你使用new、alloc、copy方法建立一個對象時,該對象的保留計數器值為1.當不再使用該對象時,你要負責向該對象發送一條release或autorelease訊息。這樣,該對象將在其使用壽命結束時被銷毀。2)當你通過其他方法獲得一個對象時,這假設該對象的保留計數器值為1,而且已經被設定為自動釋放,你不需要執行任何操作來確保該對象被清理。如果你打算在一段時間內擁有該對象,這需要保留它並確保在操作完成時釋放它。3)如果你保留了某個對象,你需要(最終)釋放或自動釋
Time of Update: 2018-12-06
《Objective-C 進階編程:iOS與OS X多線程和記憶體管理》基本資料原書名:Pro multithreading and memory management for iOS and OS X作者: (日)阪本一樹 (日)古本智彥譯者: 黎華叢書名: 圖靈程式設計叢書出版社:人民郵電出版社ISBN:9787115318091上架時間:2013-5-28出版日期:2013 年6月開本:16開頁碼:1版次:1-1所屬分類:電腦更多關於 》》》《Objective-C
Time of Update: 2018-12-07
category 下稱類別允許你甚至在沒有類源碼的情況下擴充一個類的功能,給它增加方法。** 這個可以理解為 "mixin" 的一種機制。主要作用是使相同的方法在沒有繼承關的類中複用。要使用它需要在類的@interface 檔案中的category 處指名方法的名並在對應的實現檔案中編寫代碼。但是不能使用 category 為類添加新的執行個體變數。category 只是一種編譯時間手段,定義在裡面的方法與類的執行個體方法在運行時沒有任何的不同。#import
Time of Update: 2018-12-07
後面主要介紹oc類的運行時行為。這裡麵包括運行時方法的更換,訊息的轉寄,以及動態屬性。這些對於面向方面編程AOP的熱愛者還是很有用的,當然還有很多其他的作用,例如可配置編程之類的。但是按照我之前在java和dotnet的編程經驗,這些都是使用效能為代價的。所以盡量在程式開始部分完成操作,而不是用於程式行為的代碼。第一段代碼是方法交換。下面的例子將使用自己的代碼替換[NSString stringByAppendingPathComponent]方法的實現。這裡是替換代碼:NSString *
Time of Update: 2018-12-07
學習到目前為止,我看到oc實現的序列化方式有兩種:NSKeyedArchiver,NSPropertyListSerialization。在這兩種序列化方式中,NSData都是序列化的目標。兩種方式的不同點在於NSPropertyListSerialization只是針對字典類型的,而NSKeyedArchiver是針對對象的。(補充一下,在Mac
Time of Update: 2018-12-07
這篇總結懶得寫了,直接轉了網上的一篇文章:http://blog.csdn.net/favormm/article/details/6928432 首先看兩個runloop的樣本,來源: http://paste.lisp.org/display/86524 第一個: #includeCoreFoundation/CoreFoundation.h static void _perform( void *info__unused) { printf( hello\n ); } static
Time of Update: 2018-12-07
在java中,我們經常使用的是單例模式,這些設計模式在ios開發中也比較常用,最近也在考慮使用在ios開發中使用單例模式在objective-c中,需要在.m檔案裡面定義個static變數來表示全域變數(和java裡面的類變數類似,但是在objective-c中,static變數只是在編譯時間候進行初始化,對於static變數,無論是定義在方法體裡面