iOS开发-开发总结(二)

先来张笔者电脑上面安装的Mac app
 
 
 
一:for .. in 的内部实现(swift):
1 var g = array.generate()
2    while let obj = g.next() {
3 
4 
5 print(obj) }
6  

 


 
二:map/Fileter/Reduce
 
 
  • map

map方法,其获取一个闭包表达式作为其唯一参数。 数组中的每一个元素调用一次该闭包函数,并返回该元素所映射的值(也可以是不同类型的值)。 具体的映射方式和返回值类型由闭包来指定。

当提供给数组闭包函数后,map方法将返回一个新的数组,数组中包含了与原数组一一对应的映射后的值。

 
map的定义 func map(transform: (T) -> U) -> U[] ,这里 T 和 U 都是泛型 ,指一种类型 , T和 U 只两个不同的类型 ,也可以相同 。
 
let prices = [10,20,30] let strPrices = prices.map { "¥\($0)" } 
 
得到的结果 :print(strPrices) //[¥10, ¥20, ¥30]
 
  • filter

filter 顾名思义 就是用来过滤的 ,它使用来选择数组中满足条件的元素  
定义:filter(includeElement: (T) -> Bool) -> T[] 
接受一个数组元素 返回一个Bool类型 

let p = [10,20,33,44,87,15] let res = p.filter{ $0>20 }
 
得到结果 :print(res) //[33, 44, 87] 
 
  • reduce
reduce方法把数组元素组合计算为一个值,并且会接受一个初始值,这个初始值得类型可能和数组元素类型不同。来看定义 。reduce(initial: U, combine: (U, T) -> U) -> U 
let p1 = [20,20,10] let sum = p1.reduce(0) { $0+$1 } print(sum) //50
 
 
总结:需要说明的是数据比较大的时候,高阶函数会比传统实现更快,因为它可以并行执行(如运行在多核上),除非真的需要更高定制版本的map,reduce和filter,否则可以一直使用它们以获得更快的执行速度
 
 
三:iOS获取Modle,Version,App
 
  •     NSLog(@"uniqueIdentifier: %@", [[UIDevice currentDevice] uniqueIdentifier]);
  •     NSLog(@"name: %@", [[UIDevice currentDevice] name]);
  •     NSLog(@"systemName: %@", [[UIDevice currentDevice] systemName]);
  •     NSLog(@"systemVersion: %@", [[UIDevice currentDevice] systemVersion]);
  •     NSLog(@"model: %@", [[UIDevice currentDevice] model]);
  •     NSLog(@"localizedModel: %@", [[UIDevice currentDevice] localizedModel]);

 

 
  • App信息(字典)
NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];

 CFShow(infoDictionary);

  • // app名称
 NSString *app_Name = [infoDictionary objectForKey:@"CFBundleDisplayName"];

 

  •  // app版本
NSString *app_Version = [infoDictionary objectForKey:@"CFBundleShortVersionString"];
 
  •  // app build版本
 NSString *app_build = [infoDictionary objectForKey:@"CFBundleVersion"];
 
四;UIL和URI

1.简写:

  • URI (uniform resource identifier)统一资源标志符;
  • URL(uniform resource location )统一资源定位符(或统一资源定位器);
  • URN(uniform resource name )统一资源命名。

2.URI 和 URL 的比较

  • a. URI是一个相对来说更广泛的概念,URL是URI的一种,是URI命名机制的一个子集,可以说URI是抽象的,而具体要使用URL来定位资源。
  • b. Web上的每一种资源如:图片、文档、视频等,都是由URI定位的,这里所谓的定位指的是web上的资源相对于主机服务器来说,存放在服务器上的具体路径。
  • c. URL是internet上用来描述信息资源文件的字符串,用在客户程序和服务器上,定位客户端连接服务器所需要的信息,它不仅定位了这个信息资源,而且定义了如何找到这个资源。
3.我的白话理解
URI就是一种资源定位机制,它是比较笼统地定位了资源,并不局限于客户端和服务器,而URL就定位了网上的一切资源,只要是网上的资源,都有唯一的URL.
posted @ 2016-07-02 15:32  ekhome  阅读(130)  评论(0编辑  收藏  举报