——Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流! ——-
Foundation框架介紹
框架是由許多類、方法、函數、文檔按照一定的邏輯組織起來的集合,以便使研發程序變得更容易在OS X下的Mac操作系統中大約
有80個框架爲所有程序開發奠定基礎的框架稱爲Foundation框架
Foundation框架允許使用一些基本對象,如數字和字符串,以及一些對象集合,如數組,字典和集合,其他功能包括處理日期和時
間、內存管理、處理文件系統、存儲(或歸檔)對象、處理幾何數據結構(如點和長方形)
Foundation框架的作用
Foundation框架在開發中常用的數據類型有:
結構體
枚舉
類
NSRange
比如NSRange r = {2, 6}; 第一個數是起始位置,第二個數是長度。
#import <Foundation/Foundation.h>
int main()
{
NSString *str = @"china";
NSRange range = [str rangeOfString:@"in"];
NSLog(@"range.location = %ld, range.length = %ld", range.location, range.length);
return 0;
}
利用NSRange結構體獲得了一個字符串在另一個字符串中的起始位置和長度。運行結果是:
range.location = 2, range.length = 2
NSPoint
它表示一個點。常用的創建方式是:NSPoint point = NSMakePoint(10, 15);
或者NSPoint point = CGPointMake(10,15);
NSSize:
它表示大小,它的兩個參數分別表示x軸和y軸上的一個範圍,常用的創建NSSize變量的方式是:NSSize size = NSMakeSize(8, 13); 或者
NSSize size = CGSizeMake(8, 13);。
NSRect
它表示一個矩形,它有四個參數前兩個表示一個點,代表這個矩形的起始位置,後兩個表示它的長和寬。
NSRect就是NSPoint和NSSize的組合。
通常我們這樣創建一個NSRect變量:NSRect rect = NSMakeRect(0, 0, 5, 9); 或者NSRect rect = CGRectMake(0, 0, 5, 9);
#import <Foundation/Foundation.h>
int main()
{
NSPoint p = NSMakePoint(1, 2);
NSSize s = NSMakeSize(8, 4);
NSRect r = {p, s};
NSLog(NSStringFromRect(r)); //輸出變量r的值
NSLog(@"r.origin.x = %.2f, r.origin.y = %.2f, r.size.width = %.2f, r.size.height = %.2f",r.origin.x, r.origin.y, r.size.width, r.size.height);
return 0;
}
簡單展示了NSPoint、NSSize和NSRect。運行結果是:
{{1, 2}, {8, 4}}
r.origin.x = 1.00, r.origin.y = 2.00, r.size.width = 8.00, r.size.height = 4.00
字符串
字符串類分爲兩種:一種是不可變字符串(NSString)另一種是可變字符串(NSMutableString),可變字符串是不可變字符串的子類。
不可變字符串:
初始化字符串:NSString *str=[[NSString alloc] initWithString:@"Objective-C string"];
快速創建字符串:NSString *str=@"OC string";
帶格式轉換的字符串:NSString *str=[[NSString alloc] initWithFormat:@"age is %d,height is %.2f",19,1.72f];
上面是使用對象方法創建字符串的方式,也可以用類方法創建:
初始化字符串:NSString *str = [NSString stringWithString:@"liyi"];
或者:NSString *str = [NSString stringWithFormat:@"age is %d", 20];
可變字符串
可變字符串和不可變字符串的創建方法一樣,只不過換成了NSMutableString類。
#import <Foundation/Foundation.h>
int main()
{
NSMutableString *s1 = [NSMutableString stringWithFormat:@"my age is 10"]; //創建一個可變字符串
[s1 appendString:@" 11 12"]; // 拼接內容到s1的後面
NSRange range = [s1 rangeOfString:@"is"];
// 獲取“is”的範圍
[s1 deleteCharactersInRange:range];
//刪除“is”
NSString *s2 = [NSString stringWithFormat:@"age is 10"]; //創建一個不可變字符串
NSString *s3 = [s2 stringByAppendingString:@" 11 12"]; //如果要在s2後面接字符串的話會產生一個新的字符串
NSLog(@"s1=%@, s2=%@", s1, s2);
return 0;
}