iOS

iOS 高级教程:用 MVVM 处理复杂的TableView

原文:Advanced iOS tutorial: Use MVVM to tackle complicated TableView

在本文,我们将讨论如何 用 Model-View-ViewModel(MVVM) 模式来组织 table view 代码。 MVVM 是一种架构模型,它使用数据模型表示视图状态。我们可以使用很多 Swift 技术, 使 UI 逻辑包装成数据模型。例如使用协议和闭包简化 table view 中的代码。建议查看 文章 以全面了解 MVVM 模式。

访问 iCloud 云盘文件

前段时间,客户提出了一个需求,希望可以像微信一个从云盘中选择文件发送。 还好苹果提供了 UIDocumentPickerViewController 这个控制器,可以让我们很方便的达成这个目的。 添加对 iCloud 的

Clang 简单使用

clang -rewrite-objc: 将OC代码转成 C/C++

1. 最基本的

clang -rewrite-objc main.m

2.指定真机:

xcrun -sdk iphoneos clang -rewrite-objc main.m

指定模拟器:

xcrun -sdk iphonesimulator clang -rewrite-objc main.m

指定特定版本的SDK

xcrun -sdk iphonesimulator11.3 clang -rewrite-objc main.m

MVVM in Swift

原文:MVVM in Swift 编程归结起来就是让代码以一种聪明的方式与其他代码进行通信。 软件模式是约束程序员使编程更容易的方法。 MVVM , 大致上有以下几种限制

Swift 闭包

根据 The Swift Programming Language (Swift 4.1) - Closures 整理。 Swift 中闭包与 Objective-C 中的 Blocks 以及其他一些编程语言中的匿名函数比较相似,是自包含的函数代码块。 闭包可以捕获和存储其所在上下文中

KVO & KVOController

KVO的实现机制 KVO 是 Objective-C 对观察者模式的实现。从苹果的 文档 中对于它的实现描述可以知道: KVO 是通过 isa-swizzling 实现的。 当你观察一个对象时,该对象的isa指针被

Carthage的简单使用

Carthage 是和 Cocoapods 类似的第三方库管理工具。和 Cocoapods 相比,Carthage 仅导入 framework 文件,做到更少的入侵性。但是Carthage 仅支持动态框架,只支持iOS 8

Objective-C Messaging

消息传递(Messaging) 在C语言中,调用一个方法其实就是跳转到内存中的某一点,并开始执行一段代码。没有动态特性特性,因为这个是在编译时

Protocol Buffer Objerctive-C Compiler(protoc)

什么是Protocol buffers? Protocol buffers are a language-neutral, platform-neutral extensible mechanism for serializing structured data. Protocol buffers 是一种以有效且可扩展的格式对结构化数据进行编码的方式。它和xml类似,但是比xml更轻量