Block
1.1Block简介
1.2Block定义
int (^Sum)(int, int) = ^(int num1, int num2) {
return num1+num2;
};
定义了一个叫Sum的blocks对象,它带有两个int参数,返回int。等式右边就是blocks的具体实现
Block可以访问局部变量,但是不能修改。
intsum=10;
int(^MyBlock)(int)= ^(intnum){
sum++;//编译报错
returnnum* sum;
};
如果要修改就要加关键字:__block
__block intsum = 10;
1.3Blocks的赋值
int (^MySum)(int,int) = ^(int a,int b) {
return a + b;
};
typedef int (^MySum)(int,int);
MySum sum = ^(int a,int b) {
return a + b;
};
NSRange
typedef struct _NSRange{
NSUInteger location;
NSUInteger length;
} NSRange;
2.1创建NSRange的三种方法
NSRange range;
range.location = 7;
range.length = 3;
NSRange range = {7, 3};
NSRange range = {.location = 7,.length = 3};
NSRange range = NSMakeRange(7,3);
NSPoint
typedef CGPoint NSPoint;
在CoreGraphics/CGGeometry.h中对CGPoint的相关定义
struct CGPoint {
CGFloat x;
CGFloat y;
};
typedef struct CGPoint CGPoint;
// #define CGFLOAT_TYPE double
// typedef CGFLOAT_TYPE CGFloat;
NSPointpoint = NSMakePoint(10, 20);
或者
CGPointpoint = NSMakePoint(10, 20);
NSPointpoint = CGPointMake(10, 20);
或者
CGPointpoint = CGPointMake(10, 20);
NSSize
typedef CGSize NSSize;
在CoreGraphics/CGGeometry.h中对CGSize的相关定义
struct CGSize {
CGFloat width;
CGFloat height;
};
NSString
5.1NSString的创建
NSString *string = @"This is a String!";
NSString *string = [[NSString alloc] init];
string = @"This is a String!”;
[[NSString alloc] initWithString:@"This is a String!"];
char *cString = "这是一串中文";
[[NSString alloc] initWithCString:cString
encoding:NSUTF8StringEncoding];
或者 [[NSString alloc] initWithUTF8String:cString];
5.2NSString的读取
NSError *error = nil;
NSString *path = @"/Users/apple/Desktop/test.txt";
NSString *string = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
NSError *error = nil;
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
NSString *string = [[NSString alloc] initWithContentsOfURL:url
encoding:NSUTF8StringEncoding error:nil];
5.3将字符串写入文件
NSString *string = @"字符串";
NSString *path = @"/Users/apple/Desktop/abc.txt";
[string writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
5.4NSString大小写处理
- (NSString *)uppercaseString
全部转为大写字母
- (NSString *)lowercaseString
全部转为小写字母
- (NSString *)capitalizedString
首字母变大写,其他字母都变小写
5.5NSString的比较
比较两个字符串的内容是否相同,相同就返回YES,不同则返回NO
逐个字符地进行比较,返回NSComparisonResult来显示比较结果.
NSComparisonResult是一个枚举,有3个值:
NSOrderedAscending= -1L, NSOrderedSame, NSOrderedDescending
如果左侧大于右侧,返回NSOrderedDescending,
如果左侧小于右侧,返回NSOrderedAscending,
否则返回NSOrderedSame
忽略大小写进行比较,返回值与compare:一致
5.6NSString中搜索字符串
是否以aString开头
是否以aString结尾
检查是否包含了aString,如果包含,就返回aString的位置,如果不包含,NSRange的location为-1,length为0
可以传递一个mask参数,改变搜索方式
比如NSStringCompareOptions为NSBackwardsSearch表示从尾部开始搜索
还可以用searchRange指定搜索范围
5.6NSString的截取
从指定位置from开始(包括指定位置的字符)到尾部
从字符串的开头一直截取到指定的位置to,但不包括该位置的字符
- (NSString*)substringWithRange:(NSRange)range
按照所给出的NSRange从字符串中截取子串
用separator为分隔符截取子串,返回一个装着所有子串的集合NSArray
5.7NSString其他用法
返回字符串的长度(字符个数)
返回index位置对应的字符
转为C语言中的字符串