20120810-課堂筆記--內存管理

1。創建NSString:

法1:不需要內存管理

NSString *aString = @"abcd!";

法2:不需要內存管理

 //+(id)stringWithFormat:(NSString *)fomat,...;
    
    NSString *height;
    height = [NSString stringWithFormat:@"your height is %d feet,%d inches",5,11];
    NSLog(@"%@",height);


stringWithFormat是一個類方法,通過格式字符串和參數來創建NSString

oc生成一個類時,會創建一個代表該類的類對象。

類對象包含了指向超類的指針,類名和指向類方法列表的指針。

類對象還包含一個long型數據,爲新創建的類實例對象指定大小。

法3:需要內存管理

   NSString *aString = [[NSString alloc]initWithFormat:@"abcd!"];
    NSLog(@"%@",aString);
    [aString release];//釋放
一個alloc 一個new 一個copy 對應一個release

1.從一個文件讀取需要的內容(本地):

- (id)initWithContentsOfFile:(NSString *)path usedEncoding:(NSStringEncoding *)enc error:(NSError **)error;

2.從一個地址讀取需要的內容(遠程、網絡):

- (id)initWithContentsOfURL:(NSURL *)url usedEncoding:(NSStringEncoding *)enc error:(NSError **)error;


//如果和alloc成對使用時,需要內存管理。


3.獲取對象大小

-(unsigned int)length;


返回字符串的字符個數

優勢:

能準確的處理國際字符串。(漢語,韓語,日語)

4.拷貝字符串

+ (id)stringWithString:(NSString *)string;
   NSString *myString = @"this is an exasd";
    NSString *newString =[NSString stringWithString:myString];
    NSLog(@"%@",newString);
5.

NSString的比較方法

方法1:

函數

isEqualToString:(NSString *)

比較兩個字符串的指針指向的內容

==

比較指針地址是否相等,而不是他們所指向的對象。


方法2:

- (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask;

作用:

將接受對象和傳遞來的字符串逐個字符地進行比較,返回一個

NSComparisonResult(enum型數據)顯示比較結果。

enum _NSComparisonResult {NSOrderedAscending = -1, NSOrderedSame, NSOrderedDescending};

參數說明:

options參數是一個位掩碼,可以使用位或運算符(|)來添加選項標記。


6.

根據分隔符,把字符分割

NSString *a1 =@"this,is,a,String";
    NSArray *strings = [a1 componentsSeparatedByString:@","];
    結果:
    得到一個數組 strings{"this","is","a","String"};
連接字符串

    NSArray *strings = [[NSArray alloc]initWithObjects:@"a","b","c", nil];
    NSString *a1 = [strings componentsJoinedByString:@","];
    結果:
    得到一個字符串 a1 = @"a,b,c”
7.在字符串中查找另一個字符串


//檢查方法調用字符串是否以參數字符串開頭

- (BOOL)hasPrefix:(NSString *)aString;


//檢查方法調用字符串是否以參數字符串結尾

- (BOOL)hasSuffix:(NSString *)aString;


//檢查方法調用字符串是否包含參數字符串

- (NSRange)rangeOfString:(NSString *)aString;

8.子字符串操作

//

NSString *string =@"John,Bob,Jane";


//得到從第from個字符開始地串

- (NSString *)substringFromIndex:(NSUInteger)from;

//得到開始地to個字符

- (NSString *)substringToIndex:(NSUInteger)to;

//得到從第幾個開始地,幾個字符

- (NSString *)substringWithRange:(NSRange)range;


9。刪除對象
#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{   

    NSMutableString *friends;
    friends = [NSMutableString stringWithCapacity:52];
    [friends appendString:@"James BethLynn Jack Evan"];
    
    NSRange jackRange;
    jackRange = [friends rangeOfString:@"Jack"];
    jackRange.length++;//把後面的空格也去掉
    [friends deleteCharactersInRange:jackRange];
    
    NSLog(@"%@",friends);
    
    
    
    return 0;
}










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章