1. iOS 11.3 Developer beta

    这是 iOS 11.3 的第一个 beta 版本,更新后版本号为:11.3 (15E5167f)

    配套的 Xcode 9.3 beta 版本号为 9Q98q

    主要更新亮点有:

    • Message on iCloud
    • iBooks 改名为 Books
    • AirPlay 2
    • Business Chat
    • ARKit 1.5
    • Health App 增加 Health Records
    • iPhone X 新增4个 “动话表情”

  2. macOS Hight Sierra Security Update

    Apple 最新版本的系统 macOS Hight Sierra 被暴出 严重安全漏洞,即使是小学生也能轻易以管理员身份登录陌生人的Mac。具体描述为:

    macOS Sierra 以及之前的旧版本并没有这个 bug,但所有的 macOS High Sierra 都会受这一漏洞影响,在打开 Mac 到登陆界面或者进入系统偏好设置里修改用户群组管理、安全隐私等选项时,用户名输入 “root” 密码填空,然后多试几次 Return 按钮就能顺利登陆。
    
    刚好有同学过来借宿,不知道我的小秘密以及相关隐私暴光了没。

    解决方法

    亡羊补牢,打上 2017-001 安全补丁。

    建议将自动更新打开,关闭访客户账户等提高安全性。



  3. Cocoa Auto Layout

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

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

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

    视图之间的约束表示


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


  5. iOS Frameworks

    iOS 的架构是分层的

    Layers of iOS

    Frameworks

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


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


  7. iOS 多线程学习

    基础知识

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

    主要术语:

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

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

    进程,线程和任务

    注意:

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

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


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

Page 1 / 3