• ios之遍历字典

    2015-08-28 11:13:29
    1、使用for-each循环遍历字典中的对象,可以通过如下代码实现: for (NSString *s in [dictionary allValues]) {  NSLog(@"value: %@", s); } 2、NSDictionary函数allValues会返回以数组而非字典形式组织的...
    1、使用for-each循环遍历字典中的对象,可以通过如下代码实现:
    for (NSString *s in [dictionary allValues]) {
        NSLog(@"value: %@", s);
    }


    2、NSDictionary函数allValues会返回以数组而非字典形式组织的对象。函数allKeys会将键值作为数组返回:
    for (NSString *s in [dictionary allKeys]) {
        NSLog(@"key: %@", s);
    }


    3、通过enumerateKeysAndObjectsUsingBlock:方法针对字典中的每个对象执行代码。可以用来定义代码块,然后应用到字典中的每个对象,同时又不必创建for-each循环或是获得数组版本的字典引用:
    [dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
        NSLog(@"key = %@ and obj = %@", key, obj);
    }];



    展开全文
  • 字典是以键值对的形式来存储数据 key value1 NSDictionary 字典1.1 创建字典,不可变的NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:@"xiaozhe",@"name", nil]; NSLog(@"dic %@",dic);2016-08-...

    字典是以键值对的形式来存储数据 key value

    1 NSDictionary 字典

    1.1 创建字典,不可变的

    NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:@"xiaozhe",@"name", nil];
    NSLog(@"dic %@",dic);
    2016-08-14 14:44:17.460 07-字典类[2325:547877] dic {
        name = xiaozhe;
    }

    1.2 快捷创建方式

    NSDictionary * dic2 = @{ @"one":@"1",@"two":@"2"};
    NSLog(@"dic2 %@",dic2);
    2016-08-14 14:44:17.461 07-字典类[2325:547877] dic2 {
        one = 1;
        two = 2;
    }

    1.3 字典中可以存任意数据类型

    字典的顺序不是自然顺序

    NSArray * array = @[@"one",@"two"];
    
    NSDictionary * dic3 = @{
                            @"one":@"1",
                            @"num":[NSNumber numberWithInt:10],
                            @"aaa":dic2,
                            @"bbb":dic,
                            @"ar1":array
    
                            };
    
    NSLog(@"dic3 %@",dic3);
    016-08-14 14:44:17.461 07-字典类[2325:547877] dic3 {
        aaa =     {
            one = 1;
            two = 2;
        };
        ar1 =     (
            one,
            two
        );
        bbb =     {
            name = xiaozhe;
        };
        num = 10;
        one = 1;
    }

    1.4 获得字典的长度

    NSLog(@"count %ld",dic3.count);

    1.5 从字典中取值

    NSString * str  = [dic3 objectForKey:@"one"];
    NSLog(@"str %@",str);
    
    NSDictionary * dicTmp = [dic3 objectForKey:@"aaa"];
    NSLog(@"dicTmp %@",dicTmp);
    NSArray * arrayTmp = [dic3 objectForKey:@"ar1"];
    NSLog(@"arrayTmp %@",arrayTmp);

    1.6 遍历

    取出所有的key值

    NSArray * allkeys = [dic3 allKeys];
    NSLog(@"allkeys %@",allkeys);
    
    for (int i = 0; i < allkeys.count; i++)
    {
        NSString * key = [allkeys objectAtIndex:i];
    
        //如果你的字典中存储的多种不同的类型,那么最好用id类型去接受它
        id obj  = [dic3 objectForKey:key];
        NSLog(@"obj %@",obj);
    }

    枚举器

    NSEnumerator * enumerator =  [dic3 objectEnumerator];
    
    id value;
    while (value = [enumerator nextObject]) {
        NSLog(@"value %@",value);
    }

    2 NSMutableDictionary 可变字典

    2.1 创建一个可变长度字典

    NSMutableDictionary * muDic = [[NSMutableDictionary alloc] initWithCapacity:0];

    2.2 向字典中存储数据

    [muDic setObject:@"1" forKey:@"one"];
    [muDic setObject:@"2" forKey:@"two"];
    [muDic setObject:@"3" forKey:@"three"];

    2.3 删除

    [muDic removeObjectForKey:@"one"];

    2.4 全部删除

    [muDic removeAllObjects];

    给一个 Student 类

    @interface Student : NSObject
    
    @property (nonatomic,assign) int age;
    @property (nonatomic,strong) NSString * name;
    
    - (id)initWithName:(NSString *)name andAge:(int)age;
    
    @end
    
    @implementation Student
    
    - (id)initWithName:(NSString *)name andAge:(int)age
    {
        if (self = [super init])
        {
            _name = name;
            _age = age;
        }
        return self;
    }
    
    - (NSString *)description
    {
        return [NSString stringWithFormat:@"name %@ age %d",_name,_age];
    }
    
    @end
    Student * stu1 = [[Student alloc] initWithName:@"xiaoher" andAge:20];
    Student * stu2 = [[Student alloc] initWithName:@"alex" andAge:50];
    Student * stu3 = [[Student alloc] initWithName:@"xiaoli" andAge:10];
    
    [muDic setObject:stu1 forKey:@"s1"];
    [muDic setObject:stu2 forKey:@"s2"];
    [muDic setObject:stu3 forKey:@"s3"];
    //在向字典中存储数据的时候,一定要保证key值是唯一的
    //[muDic setObject:stu3 forKey:@"s3"];
    //[muDic setObject:stu3 forKey:@"s3"];
    //[muDic setObject:stu3 forKey:@"s3"];

    2.5 使用for循环遍历字典

    NSArray * allkeys = [muDic allKeys];
    
    for (int i = 0; i < allkeys.count; i++)
    {
        NSString * key = [allkeys objectAtIndex:i];
        Student * stu = [muDic objectForKey:key];
        NSLog(@"stu %@",stu);
    };

    2.6 使用枚举器

    NSEnumerator * enumerator = [muDic objectEnumerator];
    Student * tmp;
    while (tmp = [enumerator nextObject]) {
        NSLog(@"tmp %@",tmp);
    }

    新博客文章地址:NSDictionary字典创建,获取,遍历,可变字典的删除

    展开全文
  • iOS字典与json格式的相互转换 最近做一个项目,需要跟服务器连接,所有传出的数据都是json格式的,就需要进行相互之间的转换。在网上找了好多例子,功能都实现了,但都是运用第三方库。有一个特别奇怪的地方...


    iOS 中字典与json格式的相互转换

    最近做一个项目,需要跟服务器连接,所有传出的数据都是json格式的,就需要进行相互之间的转换。在网上找了好多例子,功能都实现了,但都是运用第三方库。有一个特别奇怪的地方就是,在将json格式的数据转换为字典时,导入了一个json包。在向服务器提交数据时,需要将字典封装为json格式,需要导入另外一个包。这就导致问题产生了,两个都是json包,一样的名字,功能却不一样,在同一个工程中就会报错,编译通不过。最后只好另辟蹊径,还好找到了两个相当简单的例子,在这里给大家分享咯:

    首先将从服务器获得的json格式的数据转换为nsdictionary,上一篇已经说过,是ios5自带的NSJSon方法,在这里再重复一下:

    iOS 5加入了NSJSONSerialization类,可以将JSON和Foundation objects相互转换。来看一段图片的代码示例:
    
    {
    
    "taken": "2011/07/13",
    
    "width": "3072",
    
    "height": "2304",
    
    "latitude": "39.52",
    
    "longitude": "-106.05",
    
    "url": "http://mypictures.com/12345.png"
    
    }
    
    解析起来很简单,代码示例:
    
    NSError *error = nil;
    
    NSData *data = [NSData dataWithContentsOfURL:webServiceURL];
    
    NSDictionary *photo = [NSJSONSerialization
    
    JSONObjectWithData:data
    
    options:NSJSONReadingMutableLeaves
    
    error:&error];
    
    NSNumber *width = [photo objectForKey:@"width"];
    
    NSNumber *height = [photo objectForKey:@"height"];
    

    搞定,现在你就可以对其进行解析了,而不需要任何的第三方库。

    接着看怎么把NSDictionary类型的数据转换为json,这个目前没找到ios自带方法,引用了第三方库JSONKit,就两个文件,json.h+.m.导入工程即可

    下面就是代码了,仔细看哦,一晃就过了啊

    NSString *returnString=[dic JSONString];//dic就是你将要转换成字典,而returnString就是齐刷刷的json数据了
    当然得导入头文件

    #import "JSONKit.h"

    ok,大功告成,功能以基本实现。

    在查找资料过程中,也发现一些不错的文章,放在这里供大家一块学习了

    JSON 到 NSObject 互相转换



    展开全文
  • OC里面的字典类也叫Key-Value,就和Java里面的map差不多,只是没有Java里面那么多种类的Map,OC里面只有两种,可变字典和不可变字典,还是与字符串和数组一样,可变字典包含了所有不可变字典的方法,也可以通过...

    字典类:NSSdictionary

    OC里面的字典类也叫Key-Value,就和Java里面的map差不多,只是没有Java里面那么多种类的Map,OC里面只有两种,可变字典和不可变字典,还是与字符串和数组一样,可变字典包含了所有不可变字典的方法,也可以通过mutableCopy实现数据从不可变到可变数组的拷贝。

    1 初始化

    NSDictionary *dic = [[NSDictionary alloc]initWithObjectsAndKeys:@"123",@"wqwe", @"12", @"wq23", nil];
    NSLog(@"%@",dic);
    不可变字典一定要在初始化的时候赋予初始值,要不就等于废物实例一个。这里值得一提的是,打印字典类,发现元素是被大括号包着的。

    NSDictionary *dic1 = @{@"wewr":@"12",@"12312":@"13",@"sfwef":@"14"};
    NSLog(@"%@",dic1);
    这是利用字面量进行初始化创建,冒号前面是key,冒号后面是value。

    NSDictionary *dic2 = [[NSDictionary alloc] initWithDictionary:dic];注意这里和数组不同,是用的大括号
    NSLog(@"%@",dic2);
    利用其他字典的数据进行初始化。
    NSDictionary *dic3 = [NSDictionary dictionaryWithObjectsAndKeys:@"123",@"1234", nil];
    NSLog(@"%@",dic3);
    通过便利构造器进行初始化。


    2 求字典元素个数

    NSUInteger ni = [dic count];
    NSLog(@"%lu",ni);

    3 根据Key取Value的值

    NSString * vlue = [dic objectForKey:@"wqwe"];
    NSLog(@"%@",vlue);


    4 获取所有的key或者value的值

    NSArray *keys = [dic allKeys];
    NSLog(@"%@",keys);
    NSArray *values = [dic allValues];
    NSLog(@"%@", values);

    可变字典NSMutableDictionary

    1 初始化

    NSMutableDictionary *mu = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"a",@"1", nil];
    NSLog(@"%@",mu);

    2 添加字典

    [mu setObject:@"world" forKey:@"arthur"];

    3 删除字典

    [mu removeObjectForKey:@"arthur"];
    NSLog(@"%@",mu);
    [mu removeAllObjects];
    NSLog(@"%@",mu);

    4 修改

    和Java的map一样,NSDictionary也有一个特性就是相同的key只保留最后一次赋值的值。那么修改就和添加字典一样,只是向同一个key中赋值罢了。


    5 字典和数组嵌套使用

    //嵌套使用 字典里放数组
        NSArray *nar = @[@"doubi",@"yaoshihuan",@"chuichui"];
        NSArray *nar2 = @[@"tiantian",@"lishuai",@"yinghan"];
        NSDictionary *dir = [NSDictionary dictionaryWithObjectsAndKeys:nar,@"first",nar2,@"second", nil];
        NSLog(@"%@",dir);
        
        //嵌套使用,数组里放字典
        NSDictionary *dir1 = [NSDictionary dictionaryWithObjectsAndKeys:@"time",@"1", nil];
        NSDictionary *dir2 = [NSDictionary dictionaryWithObjectsAndKeys:@"country",@"2", nil];
        
        NSArray *arr = [NSArray arrayWithObjects:dir1,dir2,nil];
        NSLog(@"%@",arr);


    集合类:NSSet和NSMutable

    对于他俩的区别不解释了。这个Set基本保持和Java的一致。只是多了一个可计数的set。最主要的是,set中存放的数据没有重复的,相同的元素会进行覆盖,可以利用set进行一下数据的去重,这是一个比较好的特性。

    1 初始化

    NSSet *se = [[NSSet alloc]initWithObjects:@"1",@"2",@"3",@"4",@"2",@"4", nil];
    NSLog(@"%@",se);

    2 求set包含的元素个数

    NSLog(@"%lu",[se count]);

    这里的个数统计是统计去重后的元素个数,即相同的元素算一个。


    3 求一个元素是否存在于set中

    NSLog(@"%@",[se member:@"1"]);
    该方法:如果存在,返回钙元素,如果不存在,返回null;

    NSLog(@"%d",[se containsObject:@"1"]);
    该方法:如果存在返回YES,如果不存在返回NO

    4 判断两个集合是否相等

    [se isEqualToSet:se];


    可变的集合:NSMutableSet

    不多解释,看代码

    基本用法:

    NSMutableSet *mse = [NSMutableSet setWithObjects:@"1",nil];
    [mse addObject:@"2"];
    [mse removeObject:@"2"];
    NSLog(@"%@",mse);


    可计数集合:NSCountedSet
    下面的注意了,OC里面有一个比较实用的集合类,NSCountedSet,可以求出集合内每个元素存入的个数,即,相同的元素,后者会覆盖前者,但是这个类会统计,一共覆盖了几次,并且加上最开始赋值的那一次。

    //可计数的count
    NSCountedSet *set1 = [[NSCountedSet alloc]initWithObjects:@"1",@"2",@"2",@"4", nil];
    NSLog(@"%@",set1);
    NSLog(@"%lu",[set1 count]);
    //求一个元素的计数
    NSLog(@"%lu",[set1 countForObject:@"2"]);

    展开全文
  • OC中的字典实际上为一个数组 , 数组中的每个元素同样为一个链表实现的数组 ,也就是数组中套数组。为什么要这么设计 ?原因有二: 1. 每个对象创建时,都默认生成一个hashCode ,也就是一个经过哈希算法生成的一串...

    具体代码 : https://github.com/coderMyy/MYDictionary

    OC中的字典实际上为一个数组 , 数组中的每个元素同样为一个链表实现的数组 ,也就是数组中套数组。

    为什么要这么设计 ?

    原因有二:
    1. 每个对象创建时,都默认生成一个hashCode ,也就是一个经过哈希算法生成的一串数字 。当利用key去取字典中的value时,若是使用遍历或者二分查找等方法,效率都相对较低 ,于是出现了根据每个key生成的hashCode将该键值对放到hashCode对应的数组中的指定位置,这样当用key去取值时,便不必遍历去获取,即可以根据hashCode直接取出。
    2. hashCode数字过大,或许会经过取余生成一个较小的数字,假如是对999取余,那么得到的结果始终处于0-999之间。但是,这样做的弊端在于取余所得到的值,可能是相同的,这样可能导致完全不相干的键值对被新的键值对(取余后值key相等)所覆盖。于是出现了数组中套链表实现的数组。这样,key值取余得到值相等的键值对,都将保存在同一个链表数组中,当查找key对应的值时,首先获取到该链表数组,然后遍历该数组,取正确的key所对应的值即可。

    具体代码如下:


    链表实现的数组

    #import <Foundation/Foundation.h>
    
    @interface MYLinkedArray : NSObject
    
    @property (assign , nonatomic) NSUInteger size; //数组长度
    
    
    - (void)addObject:(NSObject *)obj; //添加元素
    
    - (void)remove:(NSObject *)obj; //移除指定元素
    
    - (void)removeAtIndex:(NSInteger)index; //移除指定索引元素
    
    - (NSObject *)objectAtIndex:(NSInteger)index;  //获取指定位置的值
    
    + (instancetype)array; //数组初始化
    
    @end
    
    @interface Node : NSObject
    
    @property (strong , nonatomic) Node *previous; //上个节点
    
    @property (strong , nonatomic) Node *next; //下个节点
    
    @property (strong , nonatomic) id content; //当前节点内容
    
    @end

    . m文件

    #import "MYLinkedArray.h"
    
    @interface MYLinkedArray ()
    
    @property (nonatomic, strong) Node *first; //首个节点
    
    @property (nonatomic, strong) Node *last; //最后节点    
    
    @end
    
    @implementation MYLinkedArray
    
    //添加元素
    - (void)addObject:(NSObject *)obj
    {
    
        if (!obj) return;
        _size ++ ;
    
        Node *node = [[Node alloc]init];
        //首个节点为空
        if (!_first) {
            _first = node;
            _last  = node;
            node.previous = nil;
            node.next     = nil;
            node.content  = obj;
            return;
        }
    
       //数组中有值
        node.previous = _last;
        node.next     = nil;
        node.content  = obj;
        _last         = node;
        _last.next    = node;   
    }
    
    
    //移除元素
    - (void)remove:(NSObject *)obj
    {
        if (!obj||!_size) return;
    
        Node *tmpNode = _first;
    
        for (NSInteger index = 0; index < _size; index ++) {
    
            if ([tmpNode.content isEqual:obj]) {
    
                [self removeNode:tmpNode]; //移除节点
    
                break;
            }
        }
    }
    
    
    //根据索引移除元素
    - (void)removeAtIndex:(NSInteger)index
    {
    
        if (index<0||index>=_size) return;
    
        Node *tmpNode = _first;
    
        for (NSInteger i = 0; i < _size; i ++) {
    
            if (i == index) {
    
                [self removeNode:tmpNode]; //移除节点
    
                break;
            }
            tmpNode   = tmpNode.next;
        }
    }
    
    
    //获取指定索引元素
    - (NSObject *)objectAtIndex:(NSInteger)index
    {
        if (index<0||index>=_size) return nil;
    
        Node *tmpNode = _first;
    
        for (NSInteger i = 0; i < _size; i ++) {
    
            if (i == index) {
    
                return tmpNode.content;
            }
            tmpNode   = tmpNode.next;
        }
        return nil;
    }
    
    
    //私有
    - (void)removeNode:(Node *)node
    {
        //连接上下节点
        Node *preNode     = node.previous;
        Node *nextNode    = node.next;
        preNode.next      = nextNode;
        nextNode.previous = preNode;
        node.content      = nil; //清空被移除节点内容
        _size -- ;//长度更新
    }
    
    
    //构造方法
    + (instancetype)array
    {
        return [[self alloc]init];
    }
    
    
    @end
    
    
    
    @implementation Node
    
    
    
    @end

    自定义的字典类

    #import <Foundation/Foundation.h>
    
    @interface MYDictionary : NSObject
    
    + (instancetype)dictionary;
    
    - (void)setValue:(id)value forkey:(NSString *)key;
    
    - (id)valueForKey:(NSString *)key;
    
    @end

    . m文件

    #import "MYDictionary.h"
    #import "MYLinkedArray.h"
    
    @interface KeyValueCache : NSObject
    
    @property (nonatomic, strong) NSString *key;
    
    @property (nonatomic, strong) id  value;
    
    @end
    
    @implementation KeyValueCache
    
    + (instancetype)key:(NSString *)key value:(id)value
    {
        KeyValueCache *model = [[self alloc]init];
    
        model.key   = key;
        model.value = value;
    
        return model;
    }
    
    @end
    
    
    
    
    @interface MYDictionary ()
    
    @end
    
    @implementation MYDictionary
    {
        MYLinkedArray *_keyValues[999];
    }
    
    //构造方法
    + (instancetype)dictionary
    {
        return [[self alloc]init];
    }
    
    
    //赋值
    - (void)setValue:(id)value forkey:(NSString *)key
    {
        //获取hashCode
        NSUInteger hash        = key.hash;
        //默认一个对象占用8个字节
        NSUInteger realCode    = hash%(sizeof(_keyValues)/8);
    
        MYLinkedArray *linkArr = _keyValues[realCode];
        if (linkArr) { //如果存在链表数组
    
            for (NSInteger index = 0; index < linkArr.size; index ++) {
    
                KeyValueCache *keyValue = (KeyValueCache *)[linkArr objectAtIndex:index];
                if ([keyValue.key isEqualToString:key]) { //如果存在相同的Key ,更新value
                    keyValue.value = value; //重新赋值value
                    return;
                }
            }
    
            //创建新的键值对存储
            KeyValueCache *newKeyValue  = [KeyValueCache key:key value:value];
            [linkArr addObject:newKeyValue];
    
        }else{ //不存在链表数组
    
            //创建新的链表数组
            MYLinkedArray *newLinkArray = [MYLinkedArray array];
            KeyValueCache *newKeyValue  = [KeyValueCache key:key value:value];
            [newLinkArray addObject:newKeyValue];
            _keyValues[realCode]        = newLinkArray;
        }
    }
    
    
    //根据键取值
    - (id)valueForKey:(NSString *)key
    {
        if (!key.length) return nil;
    
        //获取hashCode
        NSUInteger hash        = key.hash;
        NSUInteger realCode    = hash%(sizeof(_keyValues)/8);
    
        MYLinkedArray *linkArr = _keyValues[realCode];
        if (linkArr) {
    
            //遍历链表,取出value
            for (NSInteger index = 0; index < linkArr.size; index ++) {
    
                KeyValueCache *keyvalue = (KeyValueCache *)[linkArr objectAtIndex:index];
                if ([keyvalue.key isEqualToString:key]) {
    
                    return keyvalue.value;
                }
            }
        }
    
        return nil;
    }
    
    
    @end

    最终实验结果:

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        MYDictionary *dict = [MYDictionary dictionary];
        [dict setValue:@"哈哈" forkey:@"孟"];
        [dict setValue:@"你好" forkey:@"孟"];
        [dict setValue:@123456 forkey:@"数字"];
        NSLog(@"%@",[dict valueForKey:@"孟"]);
        NSLog(@"%@",[dict valueForKey:@"数字"]);
    }

    成功自定义了一个字典.

    这里写图片描述

    展开全文
  • [IOS笔记]字典转模型

    2017-09-09 09:15:54
    #import "ViewController.h" #import "Shop.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIView *shopCarView; @property (weak, nonatomic) IBOutlet UIButton *addButton;...
  • 前言 文章的初衷很简单,是为了能够正常显示打印出字典里面的中文。因为默认情况下,直接打印字典的话,在Xcode控制台上,中文会是乱码的,需要Unicode转码才能...【iOS开发】打开另一个APP(URL Scheme与openUR...
  • 字符串,数组,字典存储到本地文件过程一样,只是要存储的数据类型不同而已,这里以字符串存储到本地文件为例,如下 NSString*content =@"将字符串存储到本地文件" ; (1)获取Documents 文件夹路径 参数:(1)指定...
  • 我们可以利用KVC来实现字典转模型的问题,但是KVC的使用是有条件的,由于KVC会将字典所有的键值对(key-value)赋值给模型对应的属性,只有当字典的键值对数和模型的属性数相等,并且属性名必须和字典的键值对一样时,...
  • 一个特别奇怪的地方就是,在将json格式的数据转换为字典时,导入了一个json包。在向服务器提交数据时,需要将字典封装为json格式,需要导入另外一个包。这就导致问题产生了,两个都是json包,一样的名字,功能却不...
  • iOS字典与json格式的相互转换 最近做一个项目,需要跟服务器连接,所有传出的数据都是json格式的,就需要进行相互之间的转换。在网上找了好多例子,功能都实现了,但都是运用第三方库。有一个特别奇怪的地方就是...
  • 最后把方法写在NSDictionary的分类中,具体代码如下:- (NSString *)URLRequestStringWithURL:(NSString *)urlstr{ NSMutableString *URL = [NSMutableString stringWithFormat:@"%@",urlstr]; /
  • 为了代码可读性以及开发...字典转模型主要应用在两场景。网络请求(json解析为模型、模型转字典作为请求参数),模型的数据持久化存取。 下面我们来分别探讨一下,OC跟swift中几种主流的字典转模型方式。 1 swift...
  • 1、iOS请求URL中含有中文怎么办?...2、iOS获取URL链接中的各个参数值: 例:http://example.com?param1=value1&param2=param2 通过对一个合法的url(第一个参数用"?“连接,且url中只有一个”?",剩下的参数用
  • 在开发过程中我们不免会遇到根据数组里面的某个字段,对数组里面的元素进行元素,但是如果数组里面的元素是字典,并且根据数组里面的字典,并根据字典的某个key进行排序。下面方法就是排序方法,其实说到排序很多...
  • 思路是将所有的key取出来,最后调用NSArray的排序方法进行排序。代码如下:// 将key排序 NSArray *keys = dictionary.allKeys; keys = [keys sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id ...
  • iOS N个数组,从每个数组中取出一个元素,组合,成为一个新的数组的集合
  • iOS开发:沙盒机制以及利用沙盒存储字符串、数组、字典等数据 1、初识沙盒:(1)、存储在内存中的数据,程序关闭,内存释放,数据就会丢失,这种数据是临时的。...(2)、沙盒的本质就是一个文件
  • - (int)convertToByte:(NSString*)str { int strlength = 0; char* p = (char*)[str cStringUsingEncoding:NSUnicodeStringEncoding]; for (int i=0 ; i<[str lengthOfBytesUsingEncoding:NSUnicodeStri
  • 在MVC设计模式中,M指的是modal,代表着程序需要的数据,所以我们需要创建一个modal类然后处理plist文件中的数据或者是其他的来源,本文主要讲处理plist文件,而这个过程也就是本文要讨论的字典转模型 字典转模型...
1 2 3 4 5 ... 20
收藏数 10,329
精华内容 4,131