美文网首页
UI进阶数据本地化之简单对象本地化操作

UI进阶数据本地化之简单对象本地化操作

作者: 鬼鬼梦 | 来源:发表于2016-03-25 20:05 被阅读0次

    ViewController.m

    //第一步:我要知道存到哪里,所以需要一个文件夹的路径

    NSString *documentPathStr=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];

    //第二步:我要知道要存什么,所以要创建一条数据

    NSString *str=@"hello world";

    //第三步:我要知道我存的东西放在哪里,所以创建了一个路径,路径的终点是存数据的文件.

    NSString *strPath=[documentPathStr stringByAppendingPathComponent:@"str.txt"];

    //第四步:准备工作做好,开始写入的操作

    [str writeToFile:strPath atomically:YES encoding:NSUTF8StringEncoding error:nil];

    NSLog(@"documet==%@",documentPathStr);

    //通过路径读取数据,使用stringWithContrntsOfFile方法,在读取的时候,

    //第一个参数表示读取文件的路径,

    //第二个参数表示编码格式,

    //第三个表示错误信息.

    NSString *newStr=[NSString stringWithContentsOfFile:strPath encoding:NSUTF8StringEncoding error:nil];

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

    #pragma mark--数组存储--

    //2准备存储的数据

    NSArray *array = @[@"1",@"2",@"3"];

    //3.存在哪里

    NSString *arrayPath = [documentPathStr stringByAppendingPathComponent:@"array.plist"];

    //执行存储的事件

    [array writeToFile:arrayPath atomically:YES];

    NSArray *newArray = [NSArray arrayWithContentsOfFile:arrayPath];

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

    #pragma mark--存储字典--

    NSDictionary *dic = @{@"a":@"1",@"b":@"2"};

    NSString *dicPath = [documentPathStr stringByAppendingPathComponent:@"dic.plist"];

    [dic writeToFile:dicPath atomically:YES];

    NSDictionary *newdic=[NSDictionary dictionaryWithContentsOfFile:dicPath];

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

    #pragma  mark -- NSData 存储

    //根据imageNamed获取图片会在缓存里面存一份,下次在获取同名图片,直接从缓存里面取.

    //优点:快,只有第一次的时候稍慢,但是之后再去获取的话就会很快.

    //缺点:会浪费内存,如果只用一次的话这块内存就浪费掉

    UIImage *image = [UIImage imageNamed: ];

    //根据ContentsofFile获取的图片,每一次都会根据路径去获取图片,不会占用内存,如果图片只用一次的话,推荐使用ContentsofFile

    UIImage *image1 = [[UIImage alloc]initWithContentsOfFile:(nonnull NSString *)];

    //123.png

    //123@2X.png

    //123@3X.png

    UIImage *image = [UIImage imageNamed:@"3"];

    //将UIImage类型对象转化成NSData类型的

    //第一个参数:转那个UIImage类型的对象

    //第二个参数:压缩系数,越小压缩越厉害

    NSData *data = UIImageJPEGRepresentation(image, 1);

    //将data存入到本地

    //读取出来,并放在imageview上显示

    NSString *imageStr = [documentPathStr stringByAppendingPathComponent:@"data.png"];

    [data writeToFile:imageStr atomically:YES];

    NSData *newData = [NSData dataWithContentsOfFile:imageStr];

    UIImage *newImage = [[UIImage alloc]initWithData:newData];

    UIImageView *imageView = [[UIImageView alloc]initWithImage:newImage];

    [self.view addSubview:imageView];


    相关文章

      网友评论

          本文标题:UI进阶数据本地化之简单对象本地化操作

          本文链接:https://www.haomeiwen.com/subject/xvhdlttx.html