若是要想使用 Foundation 框架的數據類型,那麼包含它的主頭文件就能夠了。即 #import <Foundation/Foundation.h> html
補充: Core Foundation 框架是相對底層,裏面的代碼幾乎都是C語言的,而 Foundation 中是OC的。框架
iOS中座標原點在左上角,向右水平方向爲x軸,向下垂直方向爲y軸。函數
經常使用的結構體:spa
//在Foundation框架中經常使用的四種結構體 NSRange(location, length) //表示範圍 CGPoint(x, y) //表示座標 CGSize(width, height) //表示UI元素的尺寸 CGRect(CGPoint, CGSize) //一個UI元素的位置和尺寸
(一) NSRange 的基本使用code
@"I love programming" //love的範圍,location=2,length=4 htm
{1, 2, 3, 4, 5} //後三個數字的範圍,location=2, length=3 blog
//使用NSRange建立變量 NSRange r1 = {2, 4}; //可讀寫很差 NSRange r2 = {.location=2, .length=4}; //比較多餘 NSRange r3 = NSMakeRange(2, 4) //必須掌握
1 //查找某個字符串在str中的範圍 2 NSString *str = @"I love programming"; 3 NSRange range = [str rangeOfString:@"love"]; 4 NSLog(@"loc = %ld, length = %ld", range.location, range.length);
輸出:loc = 2, length = 4
(二) CGPoint 的使用字符串
CGPoint p1 = CGPointMake(20, 20); get
CGPoint p2 = CGPointZero; //表示原點(0,0) io
(三) CGSize 的使用
CGSize s1 = CGSizeMake(100, 50);
CGSize s2 = CGSizeZero;
(四) CGRect 的使用
CGRect r1 = CGRectMake(0, 0, 100, 50); CGRect r2 = { {0, 0}, {100, 50}}; CGRect r3 = {p1, s1}; CGRect r4 = {CGPointZero, CGSizeMake(100, 90)}; CGRect r5 = CGRectZero;
NSLog(@"x=%.1f, y=%.1f, width=%.1f, height=%.1f", r1.origin.x, r1.origin.y, r1.size.width, r1.size.height);
輸出爲:x=0.0, y=0.0, width=100.0, height=50.0
1 //將結構體轉爲字符串 2 NSString *str1 = NSStringFromRange(range1); 3 NSString *str2 = NSStringFromCGPoint(p1); 4 NSString *str3 = NSStringFromCGSize(s1); 5 NSString *str4 = NSStringFromCGRect(r1); 6 NSLog(@"str1 = %@\n str2 = %@\n str3 = %@\n str4 = %@", str1, str2, str3, str4);
輸出爲:
str1 = {2, 4}
str2 = {20, 20}
str3 = {100, 50}
str4 = {{0, 0}, {100, 50}}
(五) Foundation 框架中結構體經常使用函數
1 BOOL a = CGPointEqualToPoint(CGPointMake(10, 10), CGPointZero); 2 BOOL b = CGSizeEqualToSize(s1, s2); 3 BOOL c = CGRectEqualToRect(r1, r2); 4 BOOL d = CGRectContainsPoint(r1, CGPointZero); 5 NSLog(@"a=%d, b=%d, c=%d, d=%d", a, b, c, d);
輸出爲:a=0, b=0, c=1, d=1
參考博文:foundation框架—結構體