繼續NSString,由於用的多,所以應該重點掌握1、求字串長度NSString *myName = @"AOBAMA"; int length = (int)[myName length];//發現傳回值類型是NSUInteger,不強轉有警告,自己也不知道強轉是不是常用的方法,望看到的網友能告知一下 NSLog(@"字串的長度是:%d",length); if ([myName length] > 5) { NSLog(
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不能少
本文將介紹Objective-C語言的新物性,其中類別(categories)允許在現有的類中添加使用者自己的方法,而協議則是Objective-C語言中特有的一種繼承方式,類似於java語言中的介面。下面我將首先介紹它們的作用,還將以自己在工程中的執行個體予以分析。 一、類別
1. NSAutoreleasePool實際上是個對象引用計數自動處理器。NSAutoreleasePool可以同時有多個,它的組織是個棧,總是存在一個棧頂pool,也就是當前pool,每建立一個pool,就往棧裡壓一個,改變當前pool為建立的pool,然後,每次給pool發送drain訊息,就彈出棧頂的pool,改當前pool為棧裡的下一個 pool。 2.
上一節給出了hello world的程式,這裡對該程式做進一步的詳解,原始碼如下:#import <Foundation/Foundation.h>int main(int arvc, char* argv[]){ NSLog(@"Hello World!"); return 0;}1.
通過前邊的hello world程式,我們知道了如何包含標頭檔,以及NSLog的基本用法,從本節開始,通過一個簡單的類來講解如何聲明和定義類,以及類中的成員函數長什麼摸樣。在第一節中描述的HOME中添加以下三個檔案Rec.h、Rec.c、main.m:/*** @file Rec.h* @brief * @author Don Hao* @date 2011-8-21 12:14:13* @version * <pre><b>copyright: </b>
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
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中的記憶體管理的黃金法則比較好
在oc中兩個方法是否相同,與參數類型和傳回值無關,之和方法名有關如:在oc中的同一個累中出現這種函數形式就是錯誤的-(void)theAge:(int)age name:(NSString *)name-(NSString *) theAge:(int)age name:(NSString *)nameoc繼承的文法規則是:@interface 子類:父類許可權控制:修飾符 類內部 子類