iOS彩票项目--第七天,初次读取json数据、KVC转模型技巧、运行时字典转模型以及初步对显示网页的操作并且跟踪标签
一、初次读取json数据

二、KVC转模型技巧,这里的技巧主要解决的是字典中的key 与 模型中有的属性对应不起来的时候 的解决办法

<方法1>

<方法2>运行时字典转模型,运行时自己一直很晕。不过还是整理下来,方便以后用。 这里直接创建了一个分类。
- 头文件代码
//
// NSObject+Model.h
// Chaos_G
// #import <Foundation/Foundation.h> @interface NSObject (Model) // 快速进行字典转模型
// mapDict:模型中的哪个属性名跟字典里面的key对应
+ (instancetype)objcWithDict:(NSDictionary *)dict mapDict:(NSDictionary *)mapDict; @end - .m文件代码
//
// NSObject+Model.m
// Chaos_G
// #import "NSObject+Model.h" #import <objc/runtime.h> @implementation NSObject (Model) + (instancetype)objcWithDict:(NSDictionary *)dict mapDict:(NSDictionary *)mapDict
{
id objc = [[self alloc] init]; // 遍历模型中属性
unsigned int count = ;
Ivar *ivars = class_copyIvarList(self, &count); for (int i = ; i < count; i++) {
Ivar ivar = ivars[i]; // 属性名称
NSString *ivarName = @(ivar_getName(ivar)); ivarName = [ivarName substringFromIndex:]; id value = dict[ivarName];
// 需要由外界通知内部,模型中属性名对应字典里面的哪个key
// ID -> id
if (value == nil) {
if (mapDict) {
NSString *keyName = mapDict[ivarName]; value = dict[keyName];
}
} [objc setValue:value forKeyPath:ivarName]; } return objc;
} @end
三、利用UIWebView显示网页,显示网页过程中通过路径加载网页的URL时,路径中包含汉字的处理方法
<方法1>

<方法2>

- UIWebView显示网页的具体代码如下
#import "ChaosHtmlViewController.h"
#import "ChaosHtml.h" @interface ChaosHtmlViewController () <UIWebViewDelegate> @end @implementation ChaosHtmlViewController - (void)viewDidLoad {
[super viewDidLoad]; self.navigationItem.title = _htmlItem.title; self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"取消" style:UIBarButtonItemStyleBordered target:self action:@selector(dismiss)]; // 取出webView 加载数据
UIWebView *web = (UIWebView *)self.view; web.delegate = self; // 设置web的代理,实现在web加载完成后,跳转到相应的网页标签 // 直接通过URLForResource:这个方法 获取的url就是将汉字处理过的URL
NSURL *url = [[NSBundle mainBundle] URLForResource:_htmlItem.html withExtension:nil]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; // web 加载请求,一步一步往上走,缺什么补什么
[web loadRequest:request];
} - (void)dismiss
{
[self dismissViewControllerAnimated:YES completion:nil];
} // 在加载view的方法里面,将控制器的view改成UIWebView
- (void)loadView
{
UIWebView *web = [[UIWebView alloc] initWithFrame:ChaosScreenBounds]; self.view = web;
}
#pragma mark - webView的代理方法
// 执行JavaScript 必须在web加载完成的时候执行
- (void)webViewDidFinishLoad:(UIWebView *)webView
{ NSString *javaStr = [NSString stringWithFormat:@"window.location.href = '#%@';",_htmlItem.ID]; [webView stringByEvaluatingJavaScriptFromString:javaStr];
} @end
iOS彩票项目--第七天,初次读取json数据、KVC转模型技巧、运行时字典转模型以及初步对显示网页的操作并且跟踪标签的更多相关文章
- 当向后台插入或读取JSON数据遇见回车时
今天在项目中发现.当插入或读取JSON数据时遇见回车符.返回JSON数据格式时会报错(firebug里体现为乱码),百度了一下发现JSON不支持字符串里存在回车! 解决的方法: 在向接口插入带json ...
- EF+LINQ事物处理 C# 使用NLog记录日志入门操作 ASP.NET MVC多语言 仿微软网站效果(转) 详解C#特性和反射(一) c# API接受图片文件以Base64格式上传图片 .NET读取json数据并绑定到对象
EF+LINQ事物处理 在使用EF的情况下,怎么进行事务的处理,来减少数据操作时的失误,比如重复插入数据等等这些问题,这都是经常会遇到的一些问题 但是如果是我有多个站点,然后存在同类型的角色去操作 ...
- Java学习-029-JSON 之三 -- 模仿 cssSelector 封装读取 JSON 数据方法
前文简单介绍了如何通过 json-20141113.jar 提供的功能获取 JSON 的数据,敬请参阅:Java学习-028-JSON 之二 -- 数据读取. 了解学习过 JQuery 的朋友都知道, ...
- ajax读取json数据
首先建立json.txt文件 { "programmers": [ { "firstName": "Brett", "lastNa ...
- 在MVC中动态读取JSON数据创建表格
//使用getJSON // ("@Url.Action("GetAllUsers","User")" ,json文件的路径.也可以是 /M ...
- js读取json数据(php传值给js)
<?php $array =array('fds','fdsa','fdsafasd'); // json_encode($array); ?> <html> <hea ...
- Javascript实例技巧精选(6)—滚动鼠标中键读取Json数据分页显示网页内容
>>点击这里下载完整html源码<< 截图如下: 滚动鼠标中键读取Json数据分页显示网页内容,关键的Javascript如下: <script type="t ...
- 关于跨域读取json数据我的理解
这两天在做关于读取json数据的插件,想用getJSON读取数据: $.getJSON(http://www.xxxx.com/Titles.js, function (data) { console ...
- js循环读取json数据,将读取到的数据用js写成表格
①js循环读取json数据的方式: var data=[{"uid":"2688","uname":"*江苏省南菁高级中学 022 ...
随机推荐
- jmap,jhat分析内存
分析JAVA Application的内存使用时,jmap是一个很实用的轻量级工具.使用jmap可以查看heap空间的概要情况,粗略的掌握heap的使用情况.也可以生成heapdump文件,再使用jh ...
- 有向图的拓扑排序算法JAVA实现
一,问题描述 给定一个有向图G=(V,E),将之进行拓扑排序,如果图有环,则提示异常. 要想实现图的算法,如拓扑排序.最短路径……并运行看输出结果,首先就得构造一个图.由于构造图的方式有很多种,这里假 ...
- redis 一二事 - 搭建集群缓存服务器
在如今并发的环境下,对大数据量的查询采用缓存是最好不过的了,本文使用redis搭建集群 (个人喜欢redis,对memcache不感冒) redis是3.0后增加的集群功能,非常强大 集群中应该至少有 ...
- 台北Unity开发者研讨会 笔记
本文转自:http://ndark.wordpress.com/2013/05/12/20130511-台北unity开发者研讨会-笔记/ (墙外) 说明 本文单纯只是笔记,若有笔误敬请见谅. 相关参 ...
- [汇编] 002基础知识-CPU和寄存器
CPU是什么 当然这里的内存不仅仅指电脑上的内存,例如:我的金士顿8G内存,七彩虹1G独显,在这里来说,显卡也是有内存的(寄存器) CPU如何控制其它部件的? 问题:CPU是如何和电脑主机中其它芯片有 ...
- maven总结1
环境:win7 maven版本:apache-maven-3.1.1-bin.zip maven安装 1.确定已经正确安装jdk,若未安装需要先安装jdk 2.http://maven.apac ...
- Android service ( 二) 远程服务
通常每个应用程序都在它自己的进程内运行,但有时需要在进程间传递对象,你可以通过应用程序UI的方式写个运行在一个不同的进程中的service.在android平台中,一个进程通常不能访问其他进程中的内存 ...
- 实例化Model的三种方式
- javascript中的数组操作
1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限, ...
- C# Thread.Join()用法的理解 转
指在一线程里面调用另一线程join方法时,表示将本线程阻塞直至另一线程终止时再执行 比如 1using System; 2 3namespace TestThreadJoin 4{ 5 class P ...