json

 //json转换成oc对象

    NSString *jsonStr= @"{\"name\":\"Zhangsan\",\"age\":20,\"dog\":{\"name\":[\"XiaoHei\", \"XiaoQiang\"]}}";

    NSData *data=[jsonStr dataUsingEncoding:NSUTF8StringEncoding];

    NSLog(@"%@",data);

    

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

    

    NSLog(@"%@",dic);

    NSLog(@"===%@",dic[@"age"]);

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

    

    NSDictionary *dic2=[dic objectForKey:@"dog"];

    NSLog(@"%@",dic2);

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

    NSLog(@"%@",[array objectAtIndex:1]);

   

    //oc对象装换成json

    NSDictionary *dic3=@{@"name":@[@"liSI",@"wangWu"],@"age":@32};

    NSData *data2=[NSJSONSerialization dataWithJSONObject:dic3 options:NSJSONWritingPrettyPrinted error:nil ];

    NSString *str2=[[NSString alloc]initWithData:data2 encoding:NSUTF8StringEncoding];

    NSLog(@"%@",str2);

    





NSObject类中的

+ (BOOL)instancesRespondToSelector:(SEL)aSelector

用于判断某类中是否实现了某实例方法

URI 统一资源

URL 统一资源标识符





异步请求是不会等待的,同步是要等待的执行完才执行下一代码



、、、、、、、、、网络请求、、、、、、、

//

//  ViewController.m

//  NSObjc-0804

//

//  Created by apple on 14-8-4.

//  Copyright (c) 2014年 apple. All rights reserved.

//



#import "ViewController.h"

#import "Ketter.h"

@interface ViewController ()

            



@end



@implementation ViewController

            

- (void)viewDidLoad {

    [super viewDidLoad];

//    Ketter *k=[[Ketter alloc]init];

    NSURL *url=[NSURL URLWithString:@"http://www.baidu.com/"];

    NSLog(@"%@   %@",[url host],[url scheme]);

    NSURL *url2=[NSURL URLWithString:@"../../../" relativeToURL:url];

    NSLog(@"%@",url2);

    

    NSURLRequest *request=[NSURLRequest requestWithURL:url];

    NSLog(@"%@",[request HTTPMethod]);

    NSLog(@"%@",[request allHTTPHeaderFields]);

    

    //获取请求地址

    NSLog(@"%@",[request URL]);

    

    [request cachePolicy];

    

    NSData *data=[NSData dataWithContentsOfURL:url];

    NSLog(@"%d",data.length);

    

    //同步方法

    //调用一个方法的时候,如果该方法的返回依赖于它的功能是否完成,称为同步方法

//    NSData *data2=[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {

        NSLog(@"%d",data.length);

    }];

    

    NSLog(@"======%@",request);

   // NSString

}



- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}



@end



json就是一个字符chuan



/////////////////////////////////////////////////////////////

 Kitty *k = [[Kitty alloc] init];

    [k print];

    

    //@selector(print) : myPrint

    

    //1. 运行时替换Kitty中print方法的实现

    class_replaceMethod([Kitty class], @selector(print), myPrint, NULL);

    //给k对象发送@selector(print)消息

//    [k print];

    

    class_addMethod([Kitty class], @selector(printx), myPrint, NULL);

    [k performSelector:@selector(printx)];

    

    //动态语言

    //swizzing

    

    //Objective-C方法的调用,发送消息

    objc_msgSend(k, @selector(print));

    

    //获取的是实例方法

    IMP call = [k methodForSelector:@selector(call)];

//    call(k, @selector(call));

    

    //子类的对象调用子类方法的实现

    SonKitty *son = [[SonKitty alloc] init];

    [son print];

    

    //本质上,用%@打印对象的时候,打印的是该对象调用description方法所返回的字符串

    NSLog(@"%@:%@", [son description], son);

    

    NSArray *array = @[@13, @"35", son];

    NSLog(@"%@", array);

    

    UIView *v = [[UIView alloc] init];

    NSLog(@"%@", v);

    

    //isKindOfClass匹配子类和父类的对象

    //isMemberOfClass严格匹配类型

    if (![son isMemberOfClass:[Kitty class]]) {

        NSLog(@"v is not kind of Kitty");

    }

    else {

        NSLog(@"v is kind of Kitty");

    }

 

你可能感兴趣的:(json)