文档章节

ios model字典 NSArray NSDictionary小结

cicue
 cicue
发布于 2015/10/22 10:33
字数 553
阅读 493
收藏 0
点赞 0
评论 0

ios model字典

#import <Foundation/Foundation.h>

@interface AdObject : NSObject
/// 广告ID
@property (strong,nonatomic) NSString *adID;
/// 广告图片的地址
@property (strong,nonatomic) NSString *imagePath;
/// 广告标题
@property (strong,nonatomic) NSString *adTitle;

/*!
 *  @brief  自定义初始化方法
 *  @param dict 存放 HPAdObject 内容的字典
 *  @return 当前类的一个实体
 */
- (id)initWithDictionary:(NSDictionary*)dict;
@end

实现

@implementation AdObject
- (id)initWithDictionary:(NSDictionary*)dict
{
    if (self = [super init])
    {
        _adID = dict[@"id"];
        _imagePath = dict[@"img"];
        _adTitle = dict[@"title"];
    }
    return self;
}
@end

引用
AdObject *obj = [[AdObject alloc]initWithDictionary:dictItem];

kvc

@implementation AdObject
+ (instancetype)carGroupWithDict:(NSDictionary *)dict
{
    AdObject *cg = [[self alloc] init];
    [cg setValuesForKeysWithDictionary:dict];
    return cg;
}
@end

引用
AdObject *cg = [AdObject initWithDictionary:dict]; //alloc也给封装了,

获取本地文件

NSArray *tmp = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"cars_simple" ofType:@"plist"]];

NSArray使用小结

//类方法数组创建  
NSArray *array1 = [NSArray arrayWithObject:@"obj"];  
NSArray *array2 = [NSArray arrayWithObjects:@"obj1", @"obj2", @"obj3", nil];  
NSArray *array3 = [NSArray arrayWithArray:array2];  

//实例方法创建数组  
NSArray *array4 = [[NSArray alloc] initWithObjects:@"AAA", @"bbb", nil];  


//数组个数  
NSLog(@"array3 count :%d", [array3 count]);  
          
//访问元素  
NSLog(@"obj at index :%@", [array2 objectAtIndex:2]);  


//是否包含指定对象  
NSLog(@"isContains :%d", [array5 containsObject:@"obj2"]);  
                 
//查找某个对象所在索引  
NSLog(@"indexOfObject :%d",[array5 indexOfObject:@"obj3"]);  
          
//最后一个元素  
NSLog(@"lastObejct :%@", [array5 lastObject]);  
          
//遍历数组  
for (id element in array5) {  
    NSLog(@"element :%@", element);  
}

NSMutableArray;

NSMutableArray *MutableArray = [NSMutableArray alloc] init];

[mutableArray addObject:@"000"];  

//插入元素  
[mutableArray insertObject:@"ccc" atIndex:0]; 

//移除指定元素  
[mutableArray removeObject:@"ccc"];  
          
//移除指定下标元素  
[mutableArray removeObjectAtIndex:0];  
          
//移除最后一个元素  
[mutableArray removeLastObject];  
          
//添加数组  
[mutableArray addObjectsFromArray:array5];  
          
//移除指定数组中的内容  
[mutableArray removeObjectsInArray:array2];  
          
//指定索引替换对象  
[mutableArray replaceObjectAtIndex:0 withObject:@"==="];  
    
//删除全部对象  
[mutableArray removeAllObjects];

NSDictionary

//创建多个字典  
NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:  
                              @"value1", @"key1",  
                              @"value2", @"key2",  
                              @"value3", @"key3",  
                              @"value4", @"key4",  
                              nil]; 

//根据key获取value  
NSLog(@"key3 value :%@", [dic3 objectForKey:@"key3"]);  
          
//获取字典数量  
NSLog(@"dic count :%d", dic3.count);  
          
//所有的键集合  
NSArray *keys = [dic3 allKeys];  
          
//所有值集合  
NSArray *values = [dic3 allValues];

NSMutableDictionary;

NSMutableDictionary *mutableDic = [[NSMutableDictionary alloc] init];

//添加现有的字典数据  
[mutableDic addEntriesFromDictionary:dic3]; 

//添加新的键值对象  
[mutableDic setValue:@"set1" forKey:@"setKey1"];  
          
//以新的字典数据覆盖旧的字典数据  
[mutableDic setDictionary:dic2];  
          
//根据key删除value  
[mutableDic removeObjectForKey:@"key1"];  
          
//快速遍历  
for(id key in mutableDic) {  
    NSLog(@"key :%@  value :%@", key, [mutableDic objectForKey:key]);  
}  
          
//枚举遍历  
NSEnumerator *enumerator = [mutableDic keyEnumerator];  
id key = [enumerator nextObject];  
while (key) {  
     NSLog(@"enumerator :%@", [mutableDic objectForKey:key]);  
     key = [enumerator nextObject];  
}  
          
//根据key数组删除元素  
[mutableDic removeObjectsForKeys:keys];  
   
//删除所有元素        
[mutableDic removeAllObjects];


© 著作权归作者所有

共有 人打赏支持
cicue
粉丝 14
博文 109
码字总数 75151
作品 0
徐汇
UISegmentedControl segmentedControl

一、简介 <UIControl-->UIView-->UIResponder-->NSObject 格式为 1-->初始化(作用) typedef NS_OPTIONS(NSUInteger, UIDataDetectorTypes) { UIDataDetector......

无邪8 ⋅ 05/22 ⋅ 0

iOS一些代码的取巧写法总结(一)

一、 字典(NSDictionary)和JSON字符串(NSString)之间互转 二、打开摄像机作为背景 三、打开背光灯 四、状态栏和导航栏一些设置 五、切回app时、会有闪现、闪现一次主屏幕的现象 六、[UIAppl...

朝雨晚风 ⋅ 2016/12/05 ⋅ 0

面试官自述:面向高级开发人员的iOS面试问题

当您准备进行技术性iOS面试时,了解您可能会询问哪些主题以及经验丰富的iOS开发人员期望什么是非常重要的。 这是许多硅谷公司用来衡量iOS候选人资历水平的一系列问题。 这些问题涉及iOS开发的...

菇哒微课 ⋅ 04/26 ⋅ 0

一样的iOS开发程序员为什么有人4k有人40k?

前言 移动开发真正火起来其实就是最近这几年,iOS 开发技术因为发展也就才这么几年,所以值得做的事情还有很多,这就造成了每年苹果的 WWDC 都会推出一堆新的特性和 API。整体上来说,这对业...

原来是泽镜啊 ⋅ 05/16 ⋅ 0

React Native 与原生模块数据通信(一)(iOS)

(一)iOS日历模块封装演示 下面开始演示如何封装一个iOS日历原生模块,让JavaScript可以进行访问到iOS平台日历的功能。 在React Native中,原生模块就是一个Objective-C类,该实现了RCTBridge...

manofit ⋅ 05/24 ⋅ 0

iOS三维菜单、调试工具、封装通讯录、网络框架、多种控件和动画等源码

iOS精选源码 一个调用系统通讯录和获取通讯录所有联系人的封装(http://www.code4app.com/thread-29726-1-1.html) ios scrollview嵌套tableview同向滑动(初级、进阶), 支持OC / Swift(http...

sunnyaigd ⋅ 05/15 ⋅ 0

经过阿里,百度一面,二面后,我总结了50道iOS面试题

前言: 金三银四已经过去,根据统计,很多人都会选择在三月四月跳槽,原因有很多,企业年后会有大量员工离职,员工觉得老公司待遇不怎么样?薪资不够高,想换个新环境等等原因,所以,三月四...

原来是泽镜啊 ⋅ 05/04 ⋅ 0

【AR】开始使用Vuforia开发iOS(2)

原 设置iOS开发环境 安装Vuforia iOS SDK 如何安装Vuforia iOS示例 编译并运行Vuforia iOS示例 支持iOS金属 iOS 64位迁移 设置iOS开发环境 适用于iOS的Vuforia引擎目前支持运行iOS 9及更高版...

lichong951 ⋅ 06/11 ⋅ 0

如何重写自定义对象的hash方法

本文是我首发在iOS知识小集团队的,欢迎关注微博话题#ios知识小集#。我的微博:halohily hash 是 NSObject 协议中定义的一个属性,也就是说,任何一个 NSObject 的子类都会有 hash 方法(对应...

halohily ⋅ 05/22 ⋅ 0

HDU ~ 6297 ~ CCPC直播 (模拟,输出格式控制)

思路:模拟就行了,注意Running和RTE的开头字母一样。 iomanip是I/O流控制头文件,就像printf的格式化输出一样。 以下是一些常用的: dec 置基数为10 相当于"%d" hex 置基数为16 相当于"%X" oc...

zscdst ⋅ 05/29 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Boost库编译应用

版本:Boost 1.66.0 Windows库编译 官网指南:直接执行bootstrap.bat处理文件即可,可以我却遇到一堆的问题。 环境:Windows 10 + Visual Studio 2017 Boost编译出来库命名 boost库生成文件命...

水海云 ⋅ 14分钟前 ⋅ 0

解决Eclipse发布到Tomcat丢失依赖jar包的问题

如果jar文件是以外部依赖的形式导入的。Eclipse将web项目发布到Tomcat时,是不会自动发布这些依赖的。 可以通过Eclipse在项目上右击 - Propertics - Deployment Assembly,添加“Java Build ...

ArlenXu ⋅ 14分钟前 ⋅ 0

iview tree组件层级过多时可左右滚动

使用vue+iview的tree组件,iview官网iview的tree树形控件 问题描述:tree层级过多时左右不可滚动 问题解决:修改overflow属性值 .el-tree-node>.el-tree-node_children { overflow: vi...

YXMBetter ⋅ 16分钟前 ⋅ 0

分布式锁

1.通过数据库实现 http://www.weizijun.cn/2016/03/17/%E8%81%8A%E4%B8%80%E8%81%8A%E5%88%86%E5%B8%83%E5%BC%8F%E9%94%81%E7%9A%84%E8%AE%BE%E8%AE%A1/ 2.ZK实现:curator-recipes分布式锁的......

素雷 ⋅ 24分钟前 ⋅ 0

Sublime Text3 快捷键

选择类 Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本。 Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑。举个栗子:快速选中并更改所有相同的变量名...

AndyZhouX ⋅ 31分钟前 ⋅ 0

XamarinAndroid组件教程RecylerView自定义适配器动画

XamarinAndroid组件教程RecylerView自定义适配器动画 如果RecyclerViewAnimators.Adapters命名空间中没有所需要的适配器动画,开发者可以自定义动画。此时,需要让自定义的动画继承Animation...

大学霸 ⋅ 31分钟前 ⋅ 0

eureka 基础(二)

使用Eureka服务器进行身份验证 如果其中一个eureka.client.serviceUrl.defaultZone网址中包含一个凭据(如http://user:password@localhost:8761/eureka)),HTTP基本身份验证将自动添加到您...

明理萝 ⋅ 34分钟前 ⋅ 1

Kubernetes(五) - Service

Kubernetes解决的另外一个痛点就是服务发现,服务发现机制和容器开放访问都是通过Service来实现的,把Deployment和Service关联起来只需要Label标签相同就可以关联起来形成负载均衡,基于kuberne...

喵了_个咪 ⋅ 35分钟前 ⋅ 0

更新队友POM文件后报错

打开报错的地方的pom及其引用方法所在文件的pom,观察其版本号是否一致,不一致进行更改

森火 ⋅ 48分钟前 ⋅ 0

IDEA使用sonarLint

一、IDEA如何安装SonarLint插件 1.打开 Idea 2.点击【File】 3.点击【Settings】 4.点击【Plugins】 5.在搜索栏中输入“sonarlint”关键字 6.点击【Install】进行安装 7.重启Idea 二、IDEA如...

开源中国成都区源花 ⋅ 53分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部