The Elements
https://developer.apple.com/library/ios/samplecode/TheElements/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007419 UINavigationController *navController = [storyboard instantiateViewControllerWithIdentifier:@"navForTableView"];
ElementsTableViewController *viewController =
(ElementsTableViewController *)[navController topViewController]; // 1. [navController topViewController] id<ElementsDataSource, UITableViewDataSource> dataSource;
dataSource = [[ElementsSortedByNameDataSource alloc] init];
viewController.dataSource = dataSource; . //将dataSource 指定为其他类, 可以在其他类中实现 UITableViewDataSource 中的方法
详见: 苹果官方demo The Elements 在ElementsSortedByNameDataSource 类中实现UITableViewDataSource 的方法. .
AtomicElement 数据控制类:
AtomicElementTileView 类声明 AtomicElement 类型的属性
使用self.语法直接对其赋值 elementTileView.element = _element; . 使用 prepareForSegue 进行界面跳转
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender segue.destinationViewController 要跳转到的controller
segue.sourceViewController 资源controller (将要从这个controller进行跳转) .
(self.statesDictionary)[@"Solid"] = [NSMutableArray array]; //self.statesDictionary 这个字典本身无 Solid 这个 key ,
但是此语法将 在self.statesDictionary 添加 以 Solid 为key 以后面创建的数组 [NSMutableArray array] 为value . . 使用(self.nameIndexesDictionary)[aKey] 这类语法(糖衣语法),
()- (NSArray *)elementsWithInitialLetter:(NSString*)aKey { return (self.nameIndexesDictionary)[aKey];
}
() (self.elementsDictionary)[anElement.name] = anElement;
(),() 可以看出 (self.nameIndexesDictionary)[aKey] 这种语法既 self.nameIndexesDictionary[aKey] 将其对应的value 取出来 然后经行 set 方法取值 和 get 方法赋值. . 从demo中获益最大的就是tableView.dataSource 可以指定为单独的一个类来控制 self.tableView 这样可以是Controller 可与 数据处理类 区分开来,
是controller类中的代码更加简洁. 同理 delegate 也应该可以用此种方法实现. . 顺便记录一下 demo的项目文件夹结构.
()Classes{
Application Support { }
TableView Representations{
View Controllers{ }
User Interface Elements{ }
Data Sources{ }
}
Single Element View {
User Interface Elements{ }
Data Sources{ }
}
Data Model{ }
}
()Other Sources{ }
()Resources{ }

苹果官网 demo The Elements 阅读随笔的更多相关文章

  1. 验证Xcode真伪的方法,来自苹果官网

    验证Xcode真伪的方法,来自苹果官网   Xcode的验证你的版本 2015年9月22日    注意:中文为有道翻译,看下验证方法即可.   我们最近将应用程序从应用程序商店,还建有Xcode的假冒 ...

  2. 新型钓鱼手段预警:你看到的 аррӏе.com 真是苹果官网?

    研究人员发现一种"几乎无法检测"的新型钓鱼攻击,就连最细心的网民也难以辨别.黑客可通过利用已知漏洞在 Chrome.Firefox 与 Opera 浏览器中伪造显示合法网站域名(例 ...

  3. Java 银联支付官网demo测试及项目整合代码

    注:原文来源与 < Java 银联支付官网demo测试及项目整合代码  > 银联支付(网关支付B2C) 一.测试官网demo a)下载官网开发包,导入eclipse等待修改(下载的开发包没 ...

  4. 如何在苹果官网下载旧版本的Xcode

    如何在苹果官网下载旧版本的Xcode 前段时间XcodeGhost事件让很多应用中招,不乏一些知名的互联网公司开发的应用.事件的起因是开发者使用了非官方的Xcode,这些Xcode带有xcodegho ...

  5. jqgrid--api,官网demo,编辑

    api参考: http://blog.csdn.net/hurryjiang/article/details/7551477 官网demo: http://www.trirand.com/blog/j ...

  6. APP Distribution Guide 苹果官网

    https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/Introduct ...

  7. webpack官网demo起步中遇到的问题

    在webpack官网demo一开始搭建中 

  8. [WPF] 抄抄超强的苹果官网滚动文字特效实现

    1. 前言 今天 ChokCoco 大佬发布了一篇博客 超强的苹果官网滚动文字特效实现,iPhone 我是买不起的,但不妨碍我对抄特效感兴趣,正好我这周安排的工作已经完成了,于是有空练练手实现了一个 ...

  9. SpringBoot使用JSP(官网Demo)

    最开始接触java的时候,前端页面基本都是用jsp来写,最近公司项目要使用SpringBoot重构,查看SpringBoot文档,发现SpringBoot不建议使用JSP,因为jsp在使用内嵌serv ...

随机推荐

  1. python3代码

    import urllib.request url="http://mm.taobao.com/json/request_top_list.htm?type=0&page=1&quo ...

  2. 坏账,断供,四大国有资产管理公司(AMC):东方、长城、信达和华融

    在高房价大幅度下降以后,银行会认为你在贷款的时候的抵押物,已经不值钱了,比如已经下跌百分之五十了,那么,银行就会给贷款者一个通知——你的抵押物--房子,已经不值钱了,所以说,你必须立刻缴纳这一部分贬值 ...

  3. HTML5中的localStorage用法

    存储数据的方法就是直接给window.localStorage添加一个属性,例如:window.localStorage.name 或者 window.localStorage["name& ...

  4. create-maximum-number(难)

    https://leetcode.com/problems/create-maximum-number/ 这道题目太难了,花了我很多时间.最后还是参考了别人的方法.还少加了个greater方法.很难. ...

  5. 瞎折腾之 NHibernate ORM框架的接触(MVC + Repository源码)(一)

    在这炮火连天.技术更新迅猛的年代,不接触了解.甚至会用2~3种框架都不好意思说自己有多少年工作经验.况且出去面试也会有点吹牛的底子嘛. 这次折腾了NHibernate.其实这些ORM框架封装好了都是给 ...

  6. gcc与g++

    gcc和g++都是GNU(组织)的一个编译器. 误区一:gcc只能编译c代码,g++只能编译c++代码两者都可以,但是请注意:1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序:后缀为 ...

  7. 事件对象event和计时器

    事件对象:event 属性: srcElement事件源对象 keyCode 键盘按键Ascii码 window方法: 定时器: 1)setTimeout();//n毫秒后执行一次 2)setInte ...

  8. mysql mac启动

    设置别名 alias mysql=/usr/local/mysql/bin/mysql alias mysqladmin=/usr/local/mysql/bin/mysqladmin 修改密码 su ...

  9. Python内置数据类型之List篇

    List的定义: li = ["one" , "two" , "three" , "four"] List是一个有序的集 ...

  10. win32 API 学习

    SendMessage 函数原型 LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam) 详情:百度百科     msd ...