用脑思考,用心琢磨,用行动证实 [登录·注册]

吕滔博客

首页 开发 运维 工具 摄影
  • 228052

    代码组织和 Framework

    memoryApple 为了 iOS 平台的安全性考虑,是不允许动态链接非系统的框架的。因此在 app 开发中我们所使用的第三方框架如果是以库文件的方式提供的话,一定都是需要链接并打包进最后的二进制可执行文件中的静态库。最初级和原始的静态库是以 .a 的二进制文件加上一些 .h 的头文件进行定义的形式提供的,这样的静态库在使用时比较麻烦,我们除了将其添加到项目和配置链接外,还需要进行指明头文件位置等工作。这样造成的结果不仅是添加起来比较麻烦,而且因为头文件的路径可能在不同环境下会存在不一样的情况,而造...

    Swift TIP Swift 发布于 2016-05-30
  • 04611

    Protocol Extension

    memorySwift 2 中引入了一个非常重要的特性,那就是 protocol extension。在 Swift 1.x 中,extension 仅只能作用在实际的类型上 (也就是 class, struct 等等),而不能扩展一个 protocol。在 Swift 中,标准库的功能基本都是基于 protocol 来实现的,举个最简单的例子,我们每天使用的 Array 就是遵守了 CollectionType 这个 protocol 的。CollectionType 可以说是 Swift 中非常重...

    Swift TIP Swift 发布于 2016-05-30
  • 06657

    indirect 和嵌套 enum

    memory在涉及到一些数据结构的经典理论和模型 (没错,就是链表,树和图) 时,我们往往会用到嵌套的类型。比如链表,在 Swift 中,我们可以这样来定义一个单向链表:class Node<T> { let value: T? let next: Node<T>? init(value: T?, next: Node<T>?) { self.value = value self.next = next ...

    Swift TIP Swift 发布于 2016-05-30
  • 04344

    Associated Object

    memory不知道是从什么时候开始,“是否能通过 Category 给已有的类添加成员变量” 就成为了一道 Objective-C 面试中的常见题目。不幸的消息是这个面试题目在 Swift 中可能依旧会存在。得益于 Objective-C 的运行时和 Key-Value Coding 的特性,我们可以在运行时向一个对象添加值存储。而在使用 Category 扩展现有的类的功能的时候,直接添加实例变量这种行为是不被允许的,这时候一般就使用 property 配合 Associated Object 的方...

    Swift TIP Swift 发布于 2016-05-30
  • 03915

    尾递归

    memory递归在程序设计中是一种很有用的方法,它可以将复杂的过程用易于理解的方式转化和描述。举个例子,比如我们想要写一个从 0 累加到 n 的函数,如果我们不知道等差数列求和公式的话,就可以用递归的方式来做:func sum(n: UInt) -> UInt { if n == 0 { return 0 } return n + sum(n - 1) } sum(4) // 10 sum(100) // 5050看起来没问题。但是我们如果用一个大一点的...

    Swift TIP Swift 发布于 2016-05-30
  • 03732

    列举enum类型

    memory设想我们有这样一个需求,通过对于一副扑克牌的花色和牌面大小的 enum 类型,凑出一套不含大小王的扑克牌的数组。扑克牌花色和牌面大小分别由下面两个 enum 来定义:enum Suit: String { case Spades = "黑桃" case Hearts = "红桃" case Clubs = "草花" case Diamonds = "方片" } enum Ran...

    Swift TIP Swift 发布于 2016-05-30
  • 03441

    兼容性

    memory作为一门新兴语言,Swift 必然会经常性地发生变化。可以预见到在未来的一到两年内 Swift 必然会迎来很多的修正和特性强化。现在的 Swift 作为一门 app 开发语言,最终的运行环境会是各式各样的电子设备。在语言版本不断更新变化的同时,如何尽可能地使更多的设备和系统可以使用这门语言开发的 app,是最大的问题之一。Apple 通过将一个最小化的运行库集成打包到 app 中这样的方式来解决兼容性的问题。使用了 Swift 语言的项目在编译时会在 app 包中带有这一套运行时环境,并在...

    Swift TIP Swift 发布于 2016-05-30
  • 03404

    泛型扩展

    memorySwift 对于泛型的支持使得我们可以避免为类似的功能多次书写重复的代码,这是一种很好的简化。而对于泛型类型,我们也可以使用 extension 为泛型类型添加新的方法。与为普通的类型添加扩展不同的是,泛型类型在类型定义时就引入了类型标志,我们可以直接使用。例如 Swift 的 Array 类型的定义是:public struct Array<Element> : CollectionType, Indexable, ... { //... }在这个定义中,已经声明了 ...

    Swift TIP Swift 发布于 2016-05-30
  • 网站状态

    • 栏目分类:49个
    • 发布文章:1308篇
    • 用户评论:687条
    • 开博至今:3976天

    正则速查

    [abc] 匹配中括号中的单个字符,如a或b或c
    [^abc] 匹配除了a、b、c等字符的其他单个字符
    [a-z] 匹配一个字符范围,如a到z
    [a-zA-Z] 匹配一个字符范围,如a-z 或 A-Z
    ^ 匹配行的开始
    $ 匹配行的结束
    \A 匹配一个字符串的开始
    \z 匹配一个字符串的结束
    . 匹配任意单个字符
    \s 匹配空白字符,如空格,TAB
    \S 匹配非空白字符
    \d 匹配一个数字
    \D 匹配非数字
    \w 匹配一个字母
    \W 匹配非字幕
    \b 匹配字符边界
    (...) 引用所有括号中的内容
    (a|b) a或者b
    a? 零个或多个a
    a* 零个或多个a
    a+ 1个或多个a
    a{3} 3次重复的a
    a{3,} 3次或3次以上重复的a
    a{3,6} 3到6次重复的a

    修正符

    /g 查找所有可能的匹配
    /i 不区分大小写
    /m 多行匹配
    /s 单行匹配
    /x 忽略空白模式
    /e 可执行模式,PHP专有
    /A 强制从目标字符串开头匹配
    /D 使用$限制结尾字符,则不允许结尾有换行
    /U 只匹配最近的一个字符串;不重复匹配

    最新回复

    • memory: 这是我3年前玩过一次,当时因为安装完后,发现日常办公还好,但是好...
    • sdf: 想问一下,激活工具激活后,后面会出现提示要再次重新激活吗?
    • memory: 你要用碗装我吗?还是要我把扔的扔进你碗里???!!! &^_^&
    • 薛才杰: 同感,快扔到我的碗里来。。。
    • memory: 要说明一下,在大陆及香港的云主机或VPS,都是不支持的。原因都懂...
    • 历史趣谈LishiQtan: 很好的文章,值得收藏
    • memory: 现在回头看,,,这么烂的代码,也是醉了.
    • memory: 有空试试apache的
    • 脚踏实地: rInfo数组是怎么来的
    • 朋友们: 我都是这么建站的
    • memory: 明眼人.
    • 上官元恒: $lunarInfo数组是怎么来的,这是重点
    • memory: 你知道的太多了...
    • yjl: 这个肯定解决的不是空间的问题,可能是复用的问题,有可能是“站群”的问题
    • Smithd994: Hello! This post could not be wr...
    • memory: controll文件assign ,然后模板文件中直接foreach
    • mike: 你好,yaf怎么使用循环输出数据到模板中