繼續NSString,由於用的多,所以應該重點掌握1、求字串長度NSString *myName = @"AOBAMA"; int length = (int)[myName length];//發現傳回值類型是NSUInteger,不強轉有警告,自己也不知道強轉是不是常用的方法,望看到的網友能告知一下 NSLog(@"字串的長度是:%d",length); if ([myName length] > 5) { NSLog(
oc中的數組和我們以前學過的c、c++或者是java中的數組還是有很大的區別的Foundation中的數組是一組有序的對象的集合,數組中不可以存放基礎資料型別 (Elementary Data Type),只能存放類的執行個體(對象),如果需要將基礎資料型別 (Elementary Data Type)、結構體存放在數組中,需要先進行封裝NSArray 不可變數組單一元素初始化//初始化一個單元素數組 NSArray *array = [NSArray
Foundation中的字典是由鍵-值對組成的資料集合,好比java中的Map,在字典對象中key值必須是唯一的,另外字典對象中的鍵和值都不能為nil。,如果要在字典對象中表示一個空值,可以用NSNull對象(這裡主要指值value)。字典對象也可分為不可變字典和可變字典。1、不可變字典 NSNumber *num1 = [NSNumber numberWithInt:5]; NSNumber *num2 = [NSNumber numberWithInt:10];
在Foundation架構中,提供了一組單值對象的集合,且NSSet執行個體中的元素是無序的,同一個對象只能儲存一個,類似於java中的HashSet。感覺java和OC太像了1、繼續不可變,NSSetNSSet的建立類似於數組的建立,其實在Objective-c中NSSet和NSArray就很像,在後面會具體講他們之間的區別NSSet *set1 = [NSSet setWithObjects:@"one",@"two",@"three" nil];//同樣nil不能少
GNUstep Windows Installer提供了Windows平台下的Objective-C的類比開發環境,一共有四個軟體包,其中GNUstep System和GNUstep Core是必裝的,GNUstep Devel和Cairo Backend是選裝的。甭管必裝選裝,一次性全安上,免得以後麻煩。編寫Hello,
在Ubuntu 10.04中搭建Objective-C 開發環境 1.Objective-C 簡介1980 年代初布萊德·確斯在其公司 Stepstone 發明 Objective-C。Objective-C 是在 C 語言的基礎上,增加了物件導向的特徵而擴充的程式設計語言。目前主要應用於 Mac OS X 和 iPhone Os 這兩個以 OpenStep 為標準的系統。Objective-C 可以在任何運行 GCC 的系統中編譯和執行,因為GCC 本身就包含了 Objective-C
NSImage與NSData之間轉換NSData *imageData = [NSDatadataWithContentsOfFile: imagePath]; UIImage *aimage = [UIImage imageWithData: imageData]; //UIImage-> NSData NSData *imageData = UIImagePNGRepresentation(aimae);隨機數srandom(time(NULL));產生 5 -----
%@ 對象%d, %i 整數%u 無符整形%f 浮點/雙字%x, %X 二進位整數%o 八進位整數%zu size_t%p 指標%e 浮點/雙字 (科學計算)%g 浮點/雙字%s C 字串%.*s Pascal字串%c 字元%C unichar%lld 64位長整數(long long)%llu 無符64位長整數%Lf 64位雙字%e 是實數,用科學計數法計的格式字元 說明%a
Objective-C:由Brad
對於iOS的應用程式,為了保持記憶體的使用效率,系統會嚴格監視對象的引用計數,當引用計數歸0時,對象將被立即釋放。一般情況下,用release足夠了:alloc/copy/new或者retain一個對象,使用對象,然後用release釋放對象。 但考慮這種情況,如果一個方法需要返回一個建立的對象,而這個方法並不是以alloc/copy/new命名,所以調用者肯定不會使用release來平衡返回對象的引用計數,另一方面,我們的方法也不能使用release,因為這樣做會將對象立即釋放而返回一個Nul
2013-03-06 wcdj Objective-C語言是一種物件導向的一種動態程式設計語言,基於ANSI C,其物件導向的文法和思想主要來源於Small-talk。GCC便直接支援Objective-C。該語言在Mac上有著廣泛應用。有興趣的朋友可以參考下面的連結:一個不錯的Tutorial:http://www.otierney.net/objective-c.html一本Online
比較兩個字串是否相等時,應該用isEqualToString:,而不能僅僅只是比較字串的指標值,例如:NSString *thing1=@"hello 5";NSString *thing2;thing2=[NSString stringWithFormat:@"hello @d",5];if ([thing1 isEqualToString:thing2]){ NSLog(@"They are the same!")}和if (thing1==thing2){
NSArray和NSSet所實現的準系統其實都差不多,這和其他語言如java有很大差別,NSArray的儲存資料的方式是連續的,後一個資料在記憶體中是緊接著前一個資料的,而NSSet在儲存的時候並不是需要一塊連續的記憶體,有可能我第一個資料在這個地方,而第二個資料和第一個資料中間還隔得有其他內容,我只是在儲存第二個資料的時候,隨便找了個可以放下的位置就存下來了那麼他們這麼做的好處是什麼呢?NSSet由於在底層使用hash的思想實現的,所以他就保證了裡面儲存的對象必須是唯一的,而數組可以儲存相同的
1、類目(Category)的基本概念 封裝是物件導向的一個特徵,oc也不例外,但是有的時候我們會碰到一種情況,比如我們封裝了一個類,不想再動它了,但是我們又需要在那個類中增加一個方法,這時候我們就不必在那個類中做修改或者再定義一個它的子類,只需要添加一個類目(Category)即可。 (1) 在類目中定義的方法,會成為原始類的一部分,與其他方法的調用沒有區別
類的延展就如同是“匿名”的類目,延展中聲明的方法在類的@implementation和它對應的@end中實現。 類有時需要讓方法只有自己可見,我們可以通過延展的方式定義類的私人方法。我們來看看延展的寫法,注意,下面的所有代碼均定義在.m檔案中,還要注意那個括弧#import "Person.h"@interface Person()-(void)privateFuc;@end@implementation Person-(void)privateFuc{ }@
OC中的協議類似於java的借口 協議是一種特殊的程式設計模式,用於聲明專門被別的類實現的方法,協議在以下場合非常有用: 1、需要有別的類實現的方法。 2、聲明未知類的借口 3、兩個類之間通訊協議的基本特點 協議可以被任何類實現 協議本身不是類,他是定義一個其它類可實現的介面 類目也可以採用協議協議的聲明與實現 @required:表示必須強制實現的方法
現如今還是菜菜,如若有錯誤的地方還望指正!如若轉載,請註明源地址:http://blog.csdn.net/shinilaobababa/article/details/8453434首先還是來一句OC中的記憶體管理的黃金法則比較好
對象的複製就是複製一個對象作為副本,他會開闢一塊新的記憶體(堆記憶體)來儲存副本對象,就像複製檔案一樣,即來源物件和副本對象是兩塊不同的記憶體地區。對象要具備複製功能,必須實現<NSCopying>協議或者<NSMutableCopying>協議,常用的可複製對象有:NSNumber、NSString、NSMutableString、NSArray、NSMutableArray、NSDictionary、NSMutableDictionarycopy:產生對象的副本是不可
在oc中兩個方法是否相同,與參數類型和傳回值無關,之和方法名有關如:在oc中的同一個累中出現這種函數形式就是錯誤的-(void)theAge:(int)age name:(NSString *)name-(NSString *) theAge:(int)age name:(NSString *)nameoc繼承的文法規則是:@interface 子類:父類許可權控制:修飾符 類內部 子類
使用XCode的提示功能,只需要記住類的名字及常用的函數就好了,其他的函數可以根據提示來查看,按ESC鍵可以查看該類的函數 Foundtion架構