|
什么是框架?
框架是众多API的集合,是许多类、方法、函数、文档按照一定逻辑组织起来的集合,能够让程序开发变得更容易。
Foundation框架是其他框架的基础。
1、NSRange
NSRange r = NSMakeRange(2 , 4);
#import <Foundation/Foundation.h>
int main(){
NSString *str = "i love you";
NSRange range = [str rangeOfString @"love"];
NSLog(@"loc = %ld, length = %ld",range.location,range.length);
}
2、Point、Size、Rect
CGPoint p1 = NSMakePoint(10 , 20);
NSPoint p2 = CGPointMake(10 , 20);
CGRect r1 = CGRectMake(0 , 0, 100 , 50);
3、NSString
NSString *s1 = @"123sad";
NSString *s2 = [[NSString alloc] initWithFormat:@"my age is %d",10];
NSString *s3 = [[NSString alloc]initWithUTF8String:"asd"];
const char *cs = [s3 UTF8String];
NSString *s4 = [[NSString alloc] initWithContentsOfFile:@"/Users/apple/Desktop/1.txt" encoding:NSUTF8StringEncoding error:nil];
NSURL *url = [[NSURL alloc] initWithString:@"http://www.baidu.com"];
NSString *s5 = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
[@"hello" writeToFile:@"/Users/apple/Desktop/1.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];
4、NSMultableString
NSMutableString *s1 = [[NSMutableString alloc]initWithFormat:@"my age is 10"];
[s1 appendString:@"11 12"];
[s1 deleteCharactersInRange:NSMakeRange(4, 2)];
NSRange range = [s1 rangeOfString:@"is"];
[s1 deleteCharactersInRange:range];
5、NSArray
1>NSArray的创建
NSArray *array1 = [NSArray arrayWithObjects:@"qwe",@"asd",@"123" ,nil];
NSArray *array2 = @[@"qwe",@"asd",@"123"];
2>NSArray元素个数
NSUInteger num2 = array2.count;
3>NSArray中元素的访问
NSLog(@"%@",array2 objectAtIndex:1);
NSLog(@"%@",array2[0]);
4>NSArray数组遍历
for (id obj in array2) {
NSUInteger i = [array2 objectAtIndex:obj];
NSLog(@"%d--%@",i,obj);
}
[array2 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"%d---%@",idx,obj);
if (idx == 1)
{
*stop = YES;
}
}];
6、NSMutableArray
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"qwe",@"asd", nil];
[array addObject:@"zxc"];
[array removeAllObjects];
[array delete:@"asd"];
[array removeObjectAtIndex:2];
7、NSSet(NSMutableSet)
NSSet *set = [NSSet setWithObjects:@"qwe",@"asd",@"zxc", nil];
NSString *str = [set anyObject];
NSArray与NSSet的比较
1>相同点
* 都是集合,可以存放多个OC对象
* 只能存放OC对象,不能存放非OC对象(基本数据类型:int,char,float,结构体,枚举等)
* 本身都不可变,都有一个可变的子类
2>不同点
*NSArray有顺序,NSSet无序
7、NSDictionary
字典:
key—> value
索引—> 文字内容
存储的东西都是键对值
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"name",@"gary",@"address",@"beijing",@"qq",@"12345678", nil];
NSArray *keys = @[@"name",@"address",@"qq"];
NSArray *values = @[@"gary",@"beijing",@"1234567"];
NSDictionary *dict = [NSDictionary dictionaryWithObjects:values forKeys:keys];
id obj = [dict objectForKey:@"address"];
NSLog(@"%@",obj);
NSDictionary *dict = @{@"name" : @"gary",@"address" : @"beijing"};
id obj = dict[@"name"];
NSLog(@"%@",obj);
NSArray *keys = [dict allKeys];
for (int i=0;i<dict.count;i++)
{
NSString *obj = dict[keys[i]];
NSLog(@"%@",obj);
}
[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
NSLog(@"%@--%@",key,obj);
}];
Foundation框架一个常见错误,不小心修改了系统自带头文件,解决办法如下: |