在学习swift的一些笔记(四)

objective-c与swift字典的简单使用


分类: NSDictionary (NSDictionaryCreation)
在objective-c中字典的简单使用:

   // 建立一个空字典
   + (instancetype)dictionary;

   // 例子
    NSDictionary * dic = [NSDictionary dictionary];

   // 简写形式
    NSDictionary * dic = @{};

   //  建立一个拥有单个键值对字典
   + (instancetype)dictionaryWithObject:(id)object forKey:(id <NSCopying>)key;
    
   //  实例
   NSDictionary * dic = [NSDictionary dictionaryWithObject:@"OC" forKey:@"OCKey"];
   
   //  简写
   NSDictionary * dic = @{@"OC":@"OCKey"};
   
   // 建立一个拥有多个键值对的字典
   + (instancetype)dictionaryWithObjectsAndKeys:(id)firstObject, ... NS_REQUIRES_NIL_TERMINATION;

   //  实例
   NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:@"OC",@"OCKey",@"张三",@"name", nil];

   // 简写
   NSDictionary * dic = @{@"OC":@"OCKey",@"张三":@"name"};

以上的例子均为不可变字典,数组所储存的键值对的值为对象,键位字符串的标识,字典一旦决定键值对个数不可添加或删除.

根据键也就是Key来取值.

在swift中字典的简单使用:


    // 实例化一个空字典
    NSDictionary();

    // 简写
    var dic:NSDictionary = [:];

    // 建立一个拥有一个键值对的字典
    convenience init(object: AnyObject, forKey key: NSCopying)
    
    // 例子
    var dic:NSDictionary = NSDictionary(object: "OC", forKey: "OCKey");

    // 简写
    var dic:NSDictionary = ["swiftKey":"swift"];

  
    /** 2015,12,22修改 废弃 */  
    convenience init(objectsAndKeys objects: AnyObject...)

    // 建立一个拥有多个键值对的字典
    public convenience init(objects: [AnyObject], forKeys keys: [NSCopying])

    /** 2015,12,22修改 废弃 */    
    var dic = NSDictionary(objectsAndKeys: "OC","OCKey","张三","name")

    // 例子 
    var dic = NSDictionary(objects: ["张三","OC"], forKeys: ["name","OCKey"]);
    // 简写
    var dic = [ "name":"张三","age":"18","id":"1" ];

    // 指定字典中的参数
    var dic:Dictionary = Dictionary<NSString ,Float>();

在swift中与OC还是有些变化首先简写形式由 @{}变化为 [:]其次,在使用swift的便利构造器时,左边是值,而右边是key, 在简写形式中,则变化为左边是key右边是值.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,271评论 4 61
  • Spring Cloud Consul项目是针对Consul的服务治理实现。Consul是一个分布式高可用的系统,...
    嘻嘻哈哈1155阅读 389评论 2 2
  • 今日陈坤发微博:天天蹲我家门口,真的要崩溃了!并附了两张图。 网友纷纷留言:爱他请别伤害他,文明爱偶像。爱他,就不...
    1小明12阅读 530评论 0 0
  • 转多云了,突然有点想你,哈,好多年没有这种心境 不知最近的你过得怎么样,应该挺好的 虽然目前的状况,再没有交集,偶...
    墨色纸阅读 233评论 0 0
  • 现在时间管理非常的火,很多人认为我们只有管理好自己的时间才能成为人生赢家。后来又有人提出来,我们要管理的并不是自己...
    金鱼爸爸阅读 422评论 0 0