#import <Foundation/Foundation.h>
void test(){
//定义一种结构体
struct Date{
int Year;
int Month;
int Day;
};
struct Date d={2013,5,4};
d.Day=5;
}
void test1(){
//宏定义
typedef struct Date{
int Year;
int Month;
int Day;
} MyDate;
MyDate day={2013,1,1};
}
void NSRangeTest(){
//NSRange是一个结构体,里面有两个成员,一个位置还有一个表示长度
NSRange range={3,1};
NSRange range1=NSMakeRange(6, 3);
NSLog(@"location:%zi",range1.location); //NSRange参数类型是NSUInteger 就是Unsigned long类型 访问的话为@zi
NSLog(@"length:%zi",range1.length);
//还有一种NSString打印方法
NSString *str=NSStringFromRange(range);
NSLog(@"range:%@",str);
}
void pointTest(){
NSPoint point={10,10};
point=NSMakePoint(11, 11);
point=CGPointMake(12, 12);//最常用
CGPoint point1; //NSPoint和CGPoint是等价的
point1.x=11;
point1.y=12;
NSString *str=NSStringFromPoint(point);
NSLog(@"%@",str);
NSString *str1=NSStringFromPoint(point1);
NSLog(@"point:%@",str1);
}
void sizeTest(){
//创建一个宽度为10,高度是8的size
NSSize size=CGSizeMake(10, 8);
size=NSMakeSize(11, 9);
size.width=12;
size.height=10;
NSString *str=NSStringFromSize(size);
NSLog(@"size:%@",str);
}
void rectTest(){
//创建一个左边为多少的长方体
CGRect rect1=CGRectMake(1, 1, 10, 10);
NSRect rect=CGRectMake(10, 10, 12, 9);
rect.origin.x=11;
rect.origin.y=11;
rect.size.width=100;
rect.size.height=90;
NSString *str=NSStringFromRect(rect);
NSLog(@"rect:%@",str);
NSString *str1=NSStringFromRect(rect1);
NSLog(@"rect:%@",str1);
}
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSRangeTest();
pointTest();
sizeTest();
rectTest();
}
return 0;
}
结果:
2013-08-02 15:39:55.662 Foundation1-结构体[1267:303] location:6
2013-08-02 15:39:55.678 Foundation1-结构体[1267:303] length:3
2013-08-02 15:39:55.679 Foundation1-结构体[1267:303] range:{3, 1}
2013-08-02 15:39:55.679 Foundation1-结构体[1267:303] {12, 12}
2013-08-02 15:39:55.679 Foundation1-结构体[1267:303] point:{11, 12}
2013-08-02 15:39:55.680 Foundation1-结构体[1267:303] size:{12, 10}
2013-08-02 15:39:55.680 Foundation1-结构体[1267:303] rect:{{11, 11}, {100, 90}}
2013-08-02 15:39:55.680 Foundation1-结构体[1267:303] rect:{{1, 1}, {10, 10}}