1. Cocoa Auto Layout

    Auto Layout 是 iOS 6.0 和 Xcode 4.5 的新特性。

    使用 Cocoa Auto Layout 系统为用户界面元素定义布局约束,其中约束(Constraints)表示用户界面控件之间的关系,比如 “这些视图从头至尾排列”。

    Cocoa Auto Layout 让用户来定义界面元素的布局规则。

    视图之间的约束表示


  2. 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 模型为例 …


  3. iOS Frameworks

    iOS 的架构是分层的

    Layers of iOS

    Frameworks

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


  4. 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 …


  5. iOS 多线程学习

    基础知识

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

    主要术语:

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

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

    进程,线程和任务

    注意:

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

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


  6. UIImage 使用

    UIImage Class Reference

    Inherits from NSObject
    Framework /System/Library/Frameworks/UIKit.framework
    Availability Available in iOS 2.0 and later.

    Stretch

    拉伸为

    代码:

    UIImage *originalImage = [UIImage imageNamed:@"myImage.png"];
    UIImage *newImage = nil;
    
    if ([originalImage respondsToSelector:@selector(resizableImageWithCapInsets:)]) {
        // iOS 5 and obove.
        newImage = [originalImage resizableImageWithCapInsets:(UIEdgeInsets){15, 5, 15, 5 …

  7. Xcode

    Xcode 目前最新版本 Xcode 5.0 ,支持 iPhone 5s, iOS 7 开发。

    What's New

    各个版本的 Xcode 新增功能说明。

    Xcode 5.0.x

    Help you design an app that looks gorgeous on iOS 7 or OS X Mavericks.

    WWDC地址:What’s New in Xcode 5

    • 素材管理(Asset Management):素材目录(Asset Catalogs),后缀名为.xcassets …

  8. Xcode 7 清除多余的 Woking copies

    Xcode 版本:Version 7.1 (7B91b)

    问题描述: 由于项目从 SVN 切到 Git,所以在项目的 Source Control 里面的 Woking copies 里面有旧项目残留的 SVN。

    解决方法: 删除 ProjectName.xcworkspace > xcshareddata > ProjectName.xcscmblueprint,重启 Xcode。

    参考链接:http://stackoverflow.com/a/27535601


  9. Fastlane 插件开发

    能用计算机自动处理的事情,为什么还要手动重复劳动。

    fastlane

    Fastlane 是一个优秀的 CI 工具,移动开发少不了它。

    The easiest way to automate building and releasing your iOS and Android apps

    开发&调试

    1. 添加到项目 Pluginfile
    # Autogenerated by fastlane
    #
    # Ensure this file is checked in to source control!
    
    #gem 'fastlane-plugin-ftp'
    gem 'fastlane-plugin-ftp', :path => '~/Documents …

Page 1 / 4