Objective-C(IOS)對象基本操作(持續完善中..)

來源:互聯網
上載者:User

1. 資料類型。
int %o
float %f
couble %
char %c

2.執行個體變數範圍的指令:
@protected 執行個體變數可被該類及任何子類中定義的方法直接存取(預設的情況)。
@private 執行個體變數可被定義在該類的方法直接存取,不能被子類定義的方法直接存取。
@public 執行個體變數可被該類中定義的方法直接存取,也可被其他類或模組中定義的方法訪
問。使得其他方法或函數可以通過(->)來訪問執行個體變數(不推薦用)。
@package 對於64 位元映像,可以在實現該類的映像的任何地方訪問這個執行個體變數。

 

3.字串
NSString
NSMutableString(可變)
NSMutableString *string = [NSMutableString stringWithCapacity :42];
可以使用appendString :或appendFormat : 來附加新字串:
- (void) appendString :(NSString *)aString;
- (void) appendFormat :(NSString *)format , . . . ;
可以使用deleteCharactersInRange : 方法刪除字串中的字元
- (void) deleteCharactersInRange : (NSRange)range;

集合家族:
NSArray:用來儲存物件的有序列表(任意類型的對象)
限制:只能儲存Objective—C 的對象,不能儲存C 語言的基礎資料型別 (Elementary Data Type)(int、float、enum、struct、或者NSArray
中的隨機指標)。同時也不能儲存nil(對象的零值或NULL 值)
//建立一個新的NSArray
NSArray *array =[NSArray arrayWithObjects : @"one",@"two", nil];
//獲得包含的對象個數
- (unsigned)count;
//獲得特定索引處的對象
- (id)objectAtIndex :( unsigned int)index ;

切分數組:
使用componentsSeparatedByString : 來切分NSArray,
NSString *string = @"oop : ack : bork : greeble : ponies" ;
NSArray *chunks = [string componentsSeparatedByString : @":"];
使用componentsJoinedByString : 來合并NSArray 中的元素並建立字串
string = [chunks componentsJoinedByString :@":-)"] ;
NSArray 是不可變數組,數組中包含的對象是可以改變的,但是數組對象本身是不會改變的。
可變數組NSMutableArray 通過類方法arrayWithCapacity : 來建立可變數組
+ (id)arrayWithCapacity :( unsigned)numItems ;
NSMutableArray *array = [NSMutableArray arrayWithCapacity : 17];
使用addObject : 在數組末尾添加對象
- (void)addObject :( id)anObject

刪除特定索引的對象
- (void)removeObjectAtIndex :( unsigned)index;
註:可變數組還可以在特定索引處插入對象,替換對象,為數組排序,NSArray 還提供了大量好用的功能。

枚舉:
NSEnumerator 用來描述這種集合迭代器運算的方法:
要想使用NSEnumerator,需要通過objectEnumerator 向數組請求列舉程式:
- (NSEnumerator *) objectEnumerator;
可以像這樣使用這個方法:
NSEnumerator *enumerator;
enumerator = [array objectEnumerator ];
註:若想從後向前枚舉集合,使用方法reverseobjectEnumerator ; 也可以使用。
獲得列舉程式以後,開始while 迴圈,每次迴圈都向這個列舉程式請求它的nextObject
- (id)nextObject;//返回nil 表明迴圈結束
註:在枚舉的過程中不能改變數組容器。
快速枚舉樣本:
for(NSString *string in array){
NSLog(@"I found %@", string);
}

 

連接字串

  1. NSArray *strings = ... ;
  2. string = [strings componentsJoinedByString: @" "];
  3. // 結果:string1:-)string2:-)......

 

分割字串

  1. NSString *string = @"string1:string2:string3:string4:string5";
  2. NSArray *chunks = [string componentsSeparatedByString: @":"];

 

轉成數值

  1. NSString *string = ...;int intValue = [string intValue]; // int數值
  2. float floatValue = [string floatValue]; // float數值
  3. double doubleValue = [string doubleValue]; // double數值

 

從字串中去除換行

  1. 可以使用上面提到的分割字串,然後再將它們串連起來。但是採用下面的方式更好一些。
  2. NSMutableString *mstring = [NSMutableString stringWithString:string];
  3.  NSRange wholeShebang = NSMakeRange(0, [mstring length]);
  4. [mstring replaceOccurrencesOfString: @"" withString: @"" options: 0 range: wholeShebang];

這個方法也可以用來替換字串。這種方法比分割/連接字串的方法稍微快一點兒,但不是很明顯。處理長度1500000的字串,當中有36909個換行,分割/串連的方法要0.124秒,這個方法要0.071秒。

 

取得子字串

  1. NSRange range = [[string name] rangeOfString: otherString options: NSCaseInsensitiveSearch];

 

取得當前日期的字串

  1. 通常將Date轉化成NSString的方法是使用NSDateFormatter,但有時候可以使用特殊方法更簡單的進行轉化。比如想得到:“December 4, 2007”
  2. [[NSDate date] descriptionWithCalendarFormat: @"%B %e, %Y" timeZone: nil locale: nil]

 

Trim一個NSString

  1. NSString *ook = @"\n \t\t hello there \t\n \n\n";
  2. NSString *trimmed = [ook stringByTrimmingCharactersInSet:
  3. [NSCharacterSet whitespaceAndNewlineCharacterSet]];
  4. // 結果是hello there

 

 按行處理一個字串

如果一個本文文體,每一行是一條資料,想迴圈處理每一條資料要怎麼做簡單呢。看下面的例子:

  1. NSMutableArray *altitudes = [NSMutableArray array];
  2. NSString *altitudeString = [self altitudeStringFromGoogle: coords];
  3. [altitudeString enumerateLinesUsingBlock: ^(NSString *line, BOOL *stop) {
  4. float value = [line floatValue];
  5. [altitudes addObject: [NSNumber numberWithFloat: value]];
  6. }];

 

 

 

 

 

 

 

 

將字串放在剪貼簿上的方法

  1. @implementation NSString (PasteboardGoodies)
  2. - (void) sendToPasteboard
  3. {
  4. [[NSPasteboard generalPasteboard]
  5. declareTypes: [NSArray arrayWithObject: NSStringPboardType]
  6. owner:nil];
  7. [[NSPasteboard generalPasteboard]
  8. setString: self forType: NSStringPboardType];
  9.  }
  10. // sendToPasteboard@end // PasteboardGoodies
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.