1. iOS 设计模式: Model View Controller

    MVC 设计模式的主要目的是可重用性,能够在不同的视图中使用重用同一个模型。

    Model View Controller (MVC) Design Pattern

    模型 Model

    模型包含了数据。例如,一个 Book 对象包含有关书的信息:标题和作者。此外,Book 对象能够被其它对象关联,建立一对一或一对多的关系。例如 Category 对象可包含多个 Book 对象。模型中的数据可以来源于本地数据库或文件,也可以从网络请求回来。

    模型不应该直接和视图打交道,应该在需要的时候访问通过控制器来访问。

    在 iOS 中,模型通常是 NSObject 或 NSManagedObject的子类。任何模型对象包括一些实例变量和对应的 getter/setter 方法。大多数面向对象编程语言都有提供封装的机制。在 iOS 中使用 @property 封装,和可选的 @synthesize 自动生成 getter/setter 方法。以 Book 模型为例 …


  2. iOS Frameworks

    iOS 的架构是分层的

    Layers of iOS

    Frameworks

    iOS 提供了一套框架,将 iOS 应用程序的技术,服务和功能结合了起来。


  3. iOS 国际化/本地化

    获取首选语言

    // 获取首选语言
    NSLog(@"preferredLanguages:%@", [NSLocale preferredLanguages]);
    
    // 另一种方式
    NSArray *languages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];
    NSLog(@"languages:%@", languages);
    

    输出结果是一样的,都是数组:

    (
    "zh-Hans",
    en,
    fr,
    de,
    ja,
    ...
    )
    

    数组中第一个就是当前选择的语言,名称符合 ISO 639-1 代码表。同时需要注意区域和语言是独立不同的。

    获取当前地区

    NSLocale *locale = [NSLocale currentLocale];
    NSString *localeName = [locale displayNameForKey:NSLocaleIdentifier
                                             value:[locale localeIdentifier …


  4. iOS 多线程学习

    基础知识

    并发和并行。从技术角度来看,并发是程序的属性,而并行运作是机器的属性。并行和并发是两种分开的概念。作为程序员,你不能保证你的代码会在能并行执行你的代码的机器上运行。然而,你可以设计你的代码,让它使用并发操作。

    主要术语:

    • 任务:一项需要完成的,简单,单一的任务。
    • 线程:一种由操作系统提供的机制,允许多条指令在一个单独的程序中同时执行。
    • 进程:一段可执行的代码,它可以由几个线程组成。

    进程,线程和任务之间的关系:

    进程,线程和任务

    注意:

    在iPhone和Mac中,线程功能是由POSIX Threads API(或者pthreads)提供的,它是操作系统的一部分。这是相当底层的东西,你会发现很容易犯错;也许线程最坏的地方就是那些极难被发现的错误吧!

    Foundation 框架包含了一个叫做NSThread的类 …


  5. 解决 OpenWrt Bad Address 问题

    自升级 CC 后,一切都正常。

    突然有一天发现 DDNS 出了问题,LuCI 的服务界面都刷不完整。

    opkg update 失败。

    ping 所有网址都是 bad address,ping ip 地址正常。

    nslookup 只到 localhost 卡住。

    检查 DNS 配置 vi /etc/config/dhcp 正常,网络配置 /etc/config/network 正常。

    找了N久才发现 /etc/resolv.conf 文件被修改,解决方法:

    # 删除 /etc/resolv.conf
    vi /etc/resolv.conf …

  6. OpenWrt DDNS 配置

    环境

    • OpenWrt CC (LuCI)
    • 电信光纤 100M

    一、安装 luci-app-ddns

    登录路由器,进入 System -> Software,点击 Update lists 更新软件库。

    在 Filter 中输入关键字 ddns, 点击 Find package,然后在 Available packages 列表中找到 luci-i18n-ddns-en,OpenWrt 会自动分析依赖关系安装好 DDNS。

    安装完成后,在 System 和 Network 中间会多出一项 Services(假设之前没有安装过其他服务),里面有 Dynamic DNS 一项,点击进入配置界面。

    二、配置 DDNS

    DDNS 服务提供商选择列表中没有花生壳服务 …


  7. OpenWrt Luci

    1. 路由 Luci Web 界面访问不了问题
    解决方法:重启 Luci
    /etc/init.d/uhttpd restart
    

  8. OpenWrt WDS 连接设置

    介绍

    算了不想写了

    WHR-G300N V2

    砖头复活记:tftp …



Page 3 / 22