在Foundation中定義了很多常用結(jié)構(gòu)體類型來簡化我們的日常開發(fā)牲距,這些結(jié)構(gòu)體完全采用Objective-C定義,和我們自己定義的結(jié)構(gòu)體沒有任何區(qū)別向瓷,之所以由框架為我們提供完全是為了簡化我們的開發(fā)当编。常用的結(jié)構(gòu)體有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表示一個(gè)范圍*/ void test1(){
NSRange rg={3,5};//第一參數(shù)是起始位置第二個(gè)參數(shù)是長度
//NSRange rg;
//rg.location=3;
//rg.length=5;
//NSRange rg={.location=3,.length=5};
//常用下面的方式定義 NSRange rg2=NSMakeRange(3,5);//使用NSMakeRange定義一個(gè)NSRange
//打印NSRange可以使用Foundation中方法 NSLog(@"rg2 is %@", NSStringFromRange(rg2));//注意不能直接NSLog(@"rg2 is %@", rg2)蛉威,因?yàn)閞g2不是對(duì)象(準(zhǔn)確的說%@是指針)而是結(jié)構(gòu)體 } /*NSPoint表示一個(gè)點(diǎn)*/ void test2(){
NSPoint p=NSMakePoint(10, 15);//NSPoint其實(shí)就是CGPoint
//這種方式比較常見 NSPoint p2=CGPointMake(10, 15);
NSLog(NSStringFromPoint(p2));
} /*NSSize表示大小*/ void test3(){
NSSize s=NSMakeSize(10, 15);//NSSize其實(shí)就是CGSize
//這種方式比較常見 CGSize s2=CGSizeMake(10, 15);
NSLog(NSStringFromSize(s2));
} /*NSRect表示一個(gè)矩形*/ void test4(){
NSRect r=NSMakeRect(10, 5, 100, 200);//NSRect其實(shí)就是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;
}
可以看到對(duì)于常用結(jié)構(gòu)體在Foundation框架中都有一個(gè)對(duì)應(yīng)的make方法進(jìn)行創(chuàng)建日丹,這也是我們?nèi)蘸蟊容^常用的操作;而且與之對(duì)應(yīng)的還都有一個(gè)NSStringFromXX方法來進(jìn)行字符串轉(zhuǎn)換,方便我們調(diào)試蚯嫌。上面也提到NSSize其實(shí)就是CGSize哲虾,NSRect其實(shí)就是CGRect,我們可以通過查看代碼進(jìn)行確認(rèn)择示,例如NSSize定義:
繼續(xù)查看CGSize的代碼: