一、初次读取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转模型技巧、运行时字典转模型以及初步对显示网页的操作并且跟踪标签的更多相关文章

  1. 当向后台插入或读取JSON数据遇见回车时

    今天在项目中发现.当插入或读取JSON数据时遇见回车符.返回JSON数据格式时会报错(firebug里体现为乱码),百度了一下发现JSON不支持字符串里存在回车! 解决的方法: 在向接口插入带json ...

  2. EF+LINQ事物处理 C# 使用NLog记录日志入门操作 ASP.NET MVC多语言 仿微软网站效果(转) 详解C#特性和反射(一) c# API接受图片文件以Base64格式上传图片 .NET读取json数据并绑定到对象

    EF+LINQ事物处理   在使用EF的情况下,怎么进行事务的处理,来减少数据操作时的失误,比如重复插入数据等等这些问题,这都是经常会遇到的一些问题 但是如果是我有多个站点,然后存在同类型的角色去操作 ...

  3. Java学习-029-JSON 之三 -- 模仿 cssSelector 封装读取 JSON 数据方法

    前文简单介绍了如何通过 json-20141113.jar 提供的功能获取 JSON 的数据,敬请参阅:Java学习-028-JSON 之二 -- 数据读取. 了解学习过 JQuery 的朋友都知道, ...

  4. ajax读取json数据

    首先建立json.txt文件 { "programmers": [ { "firstName": "Brett", "lastNa ...

  5. 在MVC中动态读取JSON数据创建表格

    //使用getJSON // ("@Url.Action("GetAllUsers","User")" ,json文件的路径.也可以是 /M ...

  6. js读取json数据(php传值给js)

    <?php $array =array('fds','fdsa','fdsafasd');  // json_encode($array); ?> <html> <hea ...

  7. Javascript实例技巧精选(6)—滚动鼠标中键读取Json数据分页显示网页内容

    >>点击这里下载完整html源码<< 截图如下: 滚动鼠标中键读取Json数据分页显示网页内容,关键的Javascript如下: <script type="t ...

  8. 关于跨域读取json数据我的理解

    这两天在做关于读取json数据的插件,想用getJSON读取数据: $.getJSON(http://www.xxxx.com/Titles.js, function (data) { console ...

  9. js循环读取json数据,将读取到的数据用js写成表格

    ①js循环读取json数据的方式: var data=[{"uid":"2688","uname":"*江苏省南菁高级中学 022 ...

随机推荐

  1. dipole antenna simulation by CST

    CST偶极子天线仿真,半波振子天线 一.本文使用CST仿真频率为1GHz的偶极子天线,使用2013版本.仿真的步骤为 1.选择一个CST的天线工程模板 2.设置好默认的单位 3.设置背景的材料(空气腔 ...

  2. 【ASP.NET 进阶】定时执行任务实现 (定时读取和修改txt文件数字内容,无刷新显示结果)

    现在有很多网站或系统需要在服务端定时做某件事情,如每天早上8点半清理数据库中的无效数据等等,Demo 具体实现步骤如下: 0.先看解决方案截图 1.创建ASP.NET项目TimedTask,然后新建一 ...

  3. POJ 3255 Roadblocks --次短路径

    由于次短路一定存在,则可知次短路一定是最短路中某一条边不走,然后回到最短路,而且只是一条边,两条边以上不走的话,就一定不会是次短路了(即以边换边才能使最小).所以可以枚举每一条边,算出从起点到这条边起 ...

  4. SGU 180 Inversions

    题意:求逆序数对数量. 思路一:暴力,O(N^2),超时. 思路二:虽然Ai很大,但是n比较小,可以离散化,得到每个Ai排序后的位置Wi,然后按照输入的顺序,每个Ai对答案的贡献是Wi-Sum(Wi- ...

  5. [转]Rapid Reporter——轻量级ET测试记录工具

    下载地址:http://testing.gershon.info/reporter/ 特别感谢:邰晓梅老师 在一次ET的在线培训课程,邰晓梅老师使用的是这个工具. Rapid Reproter,是一款 ...

  6. 总结Gerrit常用命令

    查看分支列表,带有*的分支表示是当前所在分支[root@115~~]#git branch 查看分支详细情况 (推荐这种方式)[root@115~~]#git branch -av 创建分支(比如de ...

  7. 07Spring_bean属性的依赖注入-重点@Autowriter

    在spring2.5 版本,没有提供基本类型属性注入 ,但是spring3.0引入注解@Value 所以在Spring3.0中属性的注入只可以这么写.

  8. [android界面]android中src和background区别——前景与背景

    ImageView中XML属性src和background的区别: background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸.src是图片内容(前 ...

  9. C语言 内存四大存储区域

    #include<stdio.h> #include<stdlib.h> //程序代码指令,define定义的常量---代码区(只读) //全局(关键)变量/常量,静态(关键) ...

  10. Linux内核分析——第七周学习笔记20135308

    第七周 可执行程序的装载 一.预处理.编译.链接和目标文件的格式 1.可执行程序是怎么来的 C代码—>预处理—>汇编代码—>目标代码—>可执行文件 .asm汇编代码 .o目标码 ...