1. 程式人生 > >iOS基礎(foundation)-常用結構體

iOS基礎(foundation)-常用結構體

------ 知之部落格 期待與您交流! -------


    在Foundation中定義了很多常用結構體型別來簡化我們的日常開發,這些結構體完全採用Objective-C定義,和我們自己定義的結構體沒有任何區別,之所以由框架為我們提供完全是為了簡化我們的開發。常用的結構體有NSRange、NSPoint、NSSize、NSRect等

//
//  main.m
//  FoundationFramework
//
//  Created by Kenshin Cui on 14-2-16.
//  Copyright (c) 2014年 Kenshin Cui. All rights reserved.
//

#import <Foundation/Foundation.h> /*NSRange表示一個範圍*/ void test1(){ NSRange rg={3,5};//第一引數是起始位置第二個引數是長度 //NSRange rg; //rg.location=3; //rg.length=5; //NSRange rg={.location=3,.length=5}; //常用下面的方式定義 NSRange rg2=NSMakeRange(3,5);//使用NSMakeRange定義一個NSRange //列印NSRange可以使用Foundation中方法
NSLog(@"rg2 is %@", NSStringFromRange(rg2));//注意不能直接NSLog(@"rg2 is %@", rg2),因為rg2不是物件(準確的說%@是指標)而是結構體 } /*NSPoint表示一個點*/ void test2(){ NSPoint p=NSMakePoint(10, 15);//NSPoint其實就是CGPoint //這種方式比較常見 NSPoint p2=CGPointMake(10, 15); NSLog(NSStringFromPoint(p2)); } /*NSSize表示大小*/ void test3(){ NSSize s=NSMakeSize(10, 15);//NSSize其實就是CGSize //這種方式比較常見
CGSize s2=CGSizeMake(10, 15); NSLog(NSStringFromSize(s2)); } /*NSRect表示一個矩形*/ void test4(){ NSRect r=NSMakeRect(10, 5, 100, 200);//NSRect其實就是CGRect //這種方式比較常見 NSRect r2=CGRectMake(10, 5, 100, 200); NSLog(NSStringFromRect(r2)); } int main(int argc, const char * argv[]) { @autoreleasepool { test1(); test2(); test3(); test4(); } return 0; }
    可以看到對於常用結構體在Foundation框架中都有一個對應的make方法進行建立,這也是我們日後比較常用的操作;而且與之對應的還都有一個NSStringFromXX方法來進行字串轉換,方便我們除錯。上面也提到NSSize其實就是CGSize,NSRect其實就是CGRect,我們可以通過檢視程式碼進行確認,例如NSSize定義:

NSSize

    繼續檢視CGSize的程式碼:

CGSize