NSNumber的常用方法在Objective-c中有int的資料類型,那為什麼還要使用數字對象NSNumber?這是因為很多類(如NSArray)都要求使用對象,而int不是對象。NSNumber就是數字對象我們可以使用NSNumber對象來建立和初始化不同類型的數字對象。NSNumber + (NSNumber *)numberWithInt:(int)value; + (NSNumber *)numberWithDouble:(double)
iOS中有三種方式來實現Regex的匹配。現在將他們都記錄在這裡:1.利用NSPredicate(謂詞)匹配 例如匹配有效郵箱:NSString *email = @“nijino_saki@163.com”; NSString *regex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES
標籤:style class blog code http ext 一、聲明類介面步驟:1、聲明一個類介面,使用@interfacekeyword加上類名稱。2、用 { 執行個體變數 } 來定義各種資料成員。3、方法聲明,採用中綴符文法聲明一個c函數,用到了冒號 :
標籤:style blog color io 使用 div sp cti log enum 和 typedef,
標籤:style blog http color os 使用 io strong ar 代碼塊本質上是和其它變數相似。不同的是,代碼Block
標籤:style blog http color 使用 io ar 資料 2014
標籤:排序 compare campare陷阱NSString有多個compare相關方法:- (NSComparisonResult)compare:(NSString *)string;- (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask;-
標籤:協議 代理 匿名對象 第23條:通過委託與資料來源協議進行對象間通訊 對象之間經常需要相互連信,而通訊方式有很多。OC開發人員廣泛使用一種名叫“委託模式”(Delegate
標籤:style blog color re c cti 在基於Apple Xcode的Objective-C中,有一些方法命名潛規則,比如就property而言,假定你定義了如下property:@interface MyObject@property (nonatomic, retain)
標籤:style blog color 使用 檔案 資料 單例是一種重要的概念,它是一種極其便利的設計模式。在iPhone
標籤:des http java strong width art NSDate類用於儲存時間值,同時提供了一些方法來處理一些基於秒層級時差(Time Interval)運算和日期之間的早晚比較等。 1. 建立或初始化可用以下方法用於建立NSDate執行個體的類方法有+
標籤:objective-c 結構 對象 類 typedef Objective-C中常用的結構體NSRange,NSPoint,NSSize(CGSize),NSRect1 NSRangeNSRange 的原型為typedef struct _NSRange { NSUInteger location;
解析html和解析xml一樣,可以用解析xml的方法來解析html, NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"parsefile.html"]; //擷取檔案路徑 NSString *string=[[NSString alloc]initWithContentsOfFile:paths
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
Object-C 提供類似 Java / C++風格的錯誤處理模型,當使用 -fobjc-exceptions 開關(gcc > 3.3)時,它可以工作,但是只限於 OS X v10.3 以後的版本,之前的版本並不提供這一支援。使用錯誤捕獲的原則與其它語言類似:你不能用它來當作正常的處理流的判斷條件,而把它僅僅當作“意外”可以使用多個 @catch 塊來捕獲不同的錯誤類型。Cup *cup = [[Cup alloc] init]; @try { [cup
if(self = [ super init] { …若要超類可以完成所需的一次性初始化,需要調用[super init]。init方法返回的值(id型資料,即泛型對象指標)描述了被初始化的對象。將[super init]的結果賦給self是Objective-C的標準慣例。這麼做是為了防止超類在初始化過程中返回的對象不同於原先建立的對象。- (id) init// 初始化對象{if (self = [super init]) {// 初始化內容}return
4.Cocoa記憶體管理規則1)當你使用new、alloc、copy方法建立一個對象時,該對象的保留計數器值為1.當不再使用該對象時,你要負責向該對象發送一條release或autorelease訊息。這樣,該對象將在其使用壽命結束時被銷毀。2)當你通過其他方法獲得一個對象時,這假設該對象的保留計數器值為1,而且已經被設定為自動釋放,你不需要執行任何操作來確保該對象被清理。如果你打算在一段時間內擁有該對象,這需要保留它並確保在操作完成時釋放它。3)如果你保留了某個對象,你需要(最終)釋放或自動釋
category 下稱類別允許你甚至在沒有類源碼的情況下擴充一個類的功能,給它增加方法。** 這個可以理解為 "mixin" 的一種機制。主要作用是使相同的方法在沒有繼承關的類中複用。要使用它需要在類的@interface 檔案中的category 處指名方法的名並在對應的實現檔案中編寫代碼。但是不能使用 category 為類添加新的執行個體變數。category 只是一種編譯時間手段,定義在裡面的方法與類的執行個體方法在運行時沒有任何的不同。#import
註:這是《Objective-C基礎教程》一書上的執行個體,但是原書限於篇幅,分析得比較簡單,初次閱讀看得比較費勁,這裡展開詳細討論一下。情境:有二個類Car和Engine,即“汽車”和“引擎”。先來看最初的版本:Engine.h#import <Cocoa/Cocoa.h>@interface Engine : NSObject@property int flag;@end // EngineEngine.m#import "Engine.h"@implementation
學習到目前為止,我看到oc實現的序列化方式有兩種:NSKeyedArchiver,NSPropertyListSerialization。在這兩種序列化方式中,NSData都是序列化的目標。兩種方式的不同點在於NSPropertyListSerialization只是針對字典類型的,而NSKeyedArchiver是針對對象的。(補充一下,在Mac