首页 > 代码库 > 总结一

总结一

Json解析

JSON就是一串字符串 只不过元素会使用特定的符号标注。

{} 双括号表示对象

[] 中括号表示数组

"" 双引号内是属性或值

: 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)

所以 {"name": "Michael"} 可以理解为是一个包含name为Michael的对象

而[{"name": "Michael"},{"name": "Jerry"}]就表示包含两个对象的数组

当然了,你也可以使用{"name":["Michael","Jerry"]}来简化上面一部,这是一个拥有一个name数组的对象

 

实例:

- (void)viewDidLoad {

    [super viewDidLoad];

    NSString *jsonstr = @"{\"name\":\"zengjiewu\",\"gender\":\"male\",\"age\":\"20\",\"dog\":{\"name\":[\"heimeigui\",\"huangshi\"]}}";

    //转换为二进制形式的json数据

        NSData *data = http://www.mamicode.com/[jsonstr dataUsingEncoding:NSUTF8StringEncoding];

    //将json数据转换为OC的对象

    NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];

    NSLog(@"%@",jsonstr);

    NSLog(@"%@",dict);

    NSLog(@"%@",dict[@"dog"][@"name"]);

    //用字典dict里面键为“key”的键-值建立新字典dogdict

    NSDictionary *dogdict = [dict objectForKey:@"dog"];

    //用字典dogdict里面键为“name”的value建立数组array

    NSArray *array = [dogdict objectForKey:@"name"];

    NSLog(@"%@",array);

    //用数组array里面位置为1的元素创建字符串name

    NSString *name = [array objectAtIndex:1];

    NSLog(@"%@",name);

    //用字典dict里面键为“age"的创建对象age

    NSNumber *age = [dict objectForKey:@"age"];

    NSLog(@"%@",age);

    

    //字典,数组,数值,字符串

    NSArray *arr = @[@123,@"456",@{@"name":@"lisa",@"gender":@"fmale"}];

    //将OC的对象转换为json数据

        NSData *jsonData = http://www.mamicode.com/[NSJSONSerialization dataWithJSONObject:arr options:NSJSONWritingPrettyPrinted error:nil];

        NSString *str = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

       // NSLog(@"%@",jsonData);

        NSLog(@"%@",str);

    //将字符串str的内容存入文件

    [str writeToFile:@"Users/apple/Desktop/test.json" atomically:YES encoding:NSUTF8StringEncoding error:nil];

    

        

协议:

1.申明协议

2.挂载协议

3设置代理

 

Button: 

四种状态,两张图片

下载:

   

    同步下载:

NSString *str = [NSString StringWithContentsOfUERL:url];
 
NSData*data = http://www.mamicode.com/[NSData dataWithContentsOfURL:url];
 
[NSURLConnection sendSynchronousRequest……];
 
 
异步下载:
[NSURLConnection sendAsynchronousRequest…];
NSURLConnection *conn =  [[NSURLConnection alloc] init…];

    

}

 

头文件的循环引用:

头文件循环引用(包含)如何解决:当两个头文件需要相互包含的时候将其中一个头文件中的类用@class引入

 

 

webview创建:屏幕快照 2014-08-12 下午2.35.35 1.png