NSRange结构体:
1.定义:是用来计算字符串范围的;它有两个成员,一个是location表示开始位置,一个是lenth表示长度;
//NSRange的定义
typedef struct _NSRange {
NSUIntegerlocation;
NSUIntegerlength;
} NSRange;
2.举例说明:定义一个字符串 NSString *str = @“i love oc”;
定义一个结构体变量 NSRange range = NSMakeRange(2,4)//NSMakeRange是系统函数用来计算范围;
还可以用另外一个函数rangeOfString表示计算字符串的范围的函数:用法如NSRange = range1 = [str rangeOfString : @“love”];表示计算love在 str这个字符串中的范围;
我们可以打印出来location和lenth的值NSLog(@“location = %ld,length = %ld”,range1.location,range1.lenth)
//创建一个NSRange
NSMakeRange(NSUInteger loc, NSUInteger len)
//判断一个点是否在里面
BOOL NSLocationInRange(NSUInteger loc, NSRange range)
//判断是否相等
BOOL NSEqualRanges(NSRange range1, NSRange range2)
#import
int main()
{
//定义一个range
NSRange range = NSMakeRange(0, 3);
//输出range的location和length
NSLog(@"%ld--%ld",range.location,range.length);
//查找某个字符串再另一个字符串的范围
NSString *str = @"just a demo";
//查找
NSRange range2 = [str rangeOfString:@"a"];
//输出
NSLog(@"%ld,%ld",range2.location,range2.length);
return 0;
}
字符串的截取:substringWithRrange 截取一个字符串中的字符串;
假如我们要截取传智iOS学院最牛X这几个字:
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *str = @"
传智iOS学院最牛X
";
// @">" loc+1
NSUInteger loc = [str rangeOfString:@">"].location + 1; //"传"得位置
// @"
NSPoint/CGpoint结构体:
1.定义:用来确定坐标的:两个成员1.CGfloat x 2.CGfloat y CGfloat就是double类型;
struct CGPoint {
CGFloat x;
CGFloat y;
};
typedef struct CGPoint CGPoint;
2.函数使用:
1.NSPoint p1 = NSMakePoint(10,10);表示坐标就是x = 10 y = 10;这事坐标值
2.CGPoint p2 = CGPointMake(20.20);//比较常用这个;
3.BOOL b = CGPointEqualToPoint (CGPointMake(10,10),CGPointMake(20,10))//用来判断两个点是不是相同是不是同一个坐标位置;
//NSPoint和CGPoint的创建类似
NSPoint point =NSMakePoint(10, 10);
CGPoint point2 = CGPointMake(12, 12);
//注意 x 和 y 是 double 类型
NSLog(@"%f,%f",point.x,point.y);
NSLog(@"%f,%f",point2.x,point2.y);
//判断两点是否相等
BOOL b = CGPointEqualToPoint(point, point2);
NSLog(@"%d",b);
3.访问成员的函数:NSString *str1 = NSStringFromPiont(p1);//转换成字符串以后再来访问;
NSSize/CGSize结构体:
1.定义:用来确定按钮高度宽度:两个成员1.width 2.height
struct CGSize {
CGFloat width;
CGFloat height;
};
2.函数使用:
1.NSSize s1 = NSMakeSize(100,10);
2.CGSize s2 = CGSizeMake(200.20);
3.BOOL b = CGSizeEqualToSize (CGSizeMake(10,10),CGSizeMake(20,10))//用来判断两个宽度高度是不是相同;
//创建 size
NSSize size =NSMakeSize(10, 12);
CGSize size2 = CGSizeMake(11, 10);
//打印 size
NSLog(@"%@",NSStringFromSize(size2));
NSLog(@"%f,%f",size.width,size.height);
3.访问成员的函数:NSString *str2 = NSStringFromSize(s1);
NSRect/CGRect结构体:
1.定义:它的成员还是结构体:1.CGPoint origin 2.CGSize size;
struct CGRect {
CGPoint origin;
CGSize size;
};
typedef struct CGRect CGRect;
2.函数使用:
1.NSRect r1 = NSMakeRect(0,0,100,100);
2.CGRect r2 = CGRectMake(0,0,100,100);
3.CGRect r3 ={p1,s1};//表示将p1和s1作为Rect成员;
4.BOOL b = CGPointEqualToRect (CGRectMake(10,10,20,30),CGRectMake(20,10,49,40))//用来判断两个rect是不是相同;
5.BOOL b = CGRectContainPoint (CGRectMake(13,34,10,10),CGPointMake(20,10))//用来判断点是不是在这个框的范围内;
//创建 CGRect 和 NSRect
NSRect rect = NSMakeRect(0, 0, 10, 10);
CGRect rect2 = CGRectMake(0, 0, 5, 5);
//判断两个 rect 是否相同
BOOL b = CGRectEqualToRect(rect, rect2);
//判断一个 rect 是否包含另一个 rect
BOOL b2 = CGRectContainsRect(rect, rect2);
//判断点是否在 rect 内
BOOL b3 = CGRectContainsPoint(rect2, NSMakePoint(5, 5));
//打印判断结果
NSLog(@"%d,%d,%d",b,b2,b3);
3.访问成员的函数:NSString *str3 = NSStringFromRect(r1);