Foundation框架 - 結構體

1、基礎知識

  若是要想使用 Foundation 框架的數據類型,那麼包含它的主頭文件就能夠了。即 #import <Foundation/Foundation.h> html

  補充: Core Foundation 框架是相對底層,裏面的代碼幾乎都是C語言的,而 Foundation 中是OC的。框架

      iOS中座標原點在左上角,向右水平方向爲x軸,向下垂直方向爲y軸。函數

2、經常使用的結構體介紹及簡單使用

  經常使用的結構體: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框架—結構體

相關文章
相關標籤/搜索