(一)NSRang的基本使用
typedef struct _NSRange {
NSUInteger location;
NSUInteger length;
} NSRange;
// typedef unsigned long NSUInteger;
(二)NSPoint/CGPoint的使用
typedef CGPoint NSPoint;
struct CGPoint {
CGFloat x;
CGFloat y;
};
typedef struct CGPoint CGPoint;
// #define CGFLOAT_TYPE double
// typedef CGFLOAT_TYPE CGFloat;
(三)NSSize/CGSize的使用
typedef CGSize NSSize;
struct CGSize {
CGFloat width;
CGFloat height;
};
typedef struct CGSize CGSize;
(四)NSRect/CGRect的使用
typedef CGRect NSRect;
struct CGRect {
CGPoint origin; // 矩形左上角坐标
CGSize size; // 矩形的宽度和高度
};
typedef struct CGRect CGRect;
(五)Foundation框架中一些经常用到的结构体函数
=================================
struct和typedef struct
struct在代码中常见两种形式:
struct A
{
//...
};
前者叫做“结构体类型定义”,意思是:定义{}中的结构为一个名称是“A”的结构体。
struct
{
//...
} A;
后者是结构体变量定义,意思是:以{}中的结构,定义一个名称为"A"的变量。这里的结构体称为匿名结构体,是无法被直接引用的。
typedef中一般是:
typedef struct tagA //故意给一个不同的名字,作为结构体的实名
{
//...
} A; //结构体的别名。
也可以通过typedef为匿名结构体创建一个别名,从而使得它可以被引用:
typedef struct
{
//...
} A; //定义匿名结构体的别名为A
==============================
// main.m
// Foundation1-结构体
//
// Created by amesty on 15-1-18.
// Copyright (c) 2015年 itcast. All rights reserved.
//
//定义了Date类型的结构体
void test()
{ struct Date
{ int year;
int month;
int day;
};
//定义结构体变量
struct Date day={2015,1,18};
day.day=6;
NSLog(@"日时期是%d年%d月%d日",day.year,day.month,day.day);
}
void test1()
{ typedef struct Date
{ int year;
int month;
int day;
}Mydate;
//定义结构体变量
Mydate day={2015,1,18};
day.day=6;
NSLog(@"日时期是%d年%d月%d日",day.year,day.month,day.day);
}
/**
NSRange range;
range.location = 7;
range.length = 3;
NSRange range = {7, 3};
或者 NSRange range = {.location = 7,.length = 3};
NSRange range = NSMakeRange(7,3);
*/
void range()
{
NSRange range=NSMakeRange(8, 8);
NSLog(@"location:%zi",range.location);
NSLog(@"length:%zi",range.length);
NSString *str=NSStringFromRange(range);
// NSLog(@"%@",range); %@代表这对象
NSLog(@"%@",str);
}
/**
NSPoint point = NSMakePoint(10, 20);
或者
CGPoint point = NSMakePoint(10, 20);
NSPoint point = CGPointMake(10, 20);
或者
CGPoint point = CGPointMake(10, 20);
*/
void point()
{
NSPoint p; //CGpoint;
p.x=10;
p.y=8;
p=NSMakePoint(11, 11);
NSString * str=NSStringFromPoint(p);
NSLog(@"%@",str);
}
void size()
{
NSSize size;
size=NSMakeSize(3, 4);
NSString * str=NSStringFromSize(size);
NSLog(@"%@",str);
}
void rect()
{ NSRect rect;
rect.origin.x=0;
rect.origin.y=0;
rect.size.width=3;
rect.size.height=4;
rect=NSMakeRect(0, 0,3, 4);
}
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
range();
point();
size();
rect();
// insert code here...
NSLog(@"Hello, World!");
}
return 0;
}