包含标签 iOS 的文章

Swift 代理模式

Xcode 8.2 | Swift 3.0 在iOS开发中,无论是 Objective-C 还是 Swift ,Delegate 有着具足轻重的位置,如TabelViewDelegate 与 TableViewDataSource。 Swift 中的代理模式 和 Objective-C 除了语法外,几乎一样。 Objective-C 代理模式 在介绍 Swift 代理模式前,先来看回顾一下 Objective-C 中的代理模式如何实现 Objective-C 中用代理实现反向……

阅读全文

Xcode 控制台输出中文

重写 NSArray、NSSet、NSDictionary 的输出方法,在Xcode实现中文(Unicode)字符在控制台的输出 原理 Xcode 控制台中在输出 NSArray、NSSet、NSDictionary 时,其中的中文字符会变成Unicode编码 如"\U67cf\U8367&q……

阅读全文

BYPhoneNumTF

BYPhoneNumTF 一个电话号码格式的文本框 功能 当在TextField输入数字时,会自动分隔为:137 9922 2299 或 137-9922-2299 限制文本输入个数 限制只能输入数字 效果: 实现方法 要实现电话号码格式的输入看似简单,但是实现起来坑非常多,至于坑是什么只有各位动手写了才能体会~ 下面我们来实现该功能: 首先要遵守协议<UI……

阅读全文

Objective-C Runtime 基本使用

前言 在上一篇文章《Objective-C Runtime详解》中我们探讨了Runtime的基本原理,这篇文章我们将总结一下Runtime的一些基本使用 使用方法 查询方法 给分类添加属性 更换代码的实现方法 动态添加方法 字典转属性 准备 先创建两个类 ClassA.h #import <Foundation/Foundation.h> @interface ClassA : NSObject { // 公有变量 NSString *_publicVar1; NSString *_publicVar2; } // 公有属性……

阅读全文

Objective-C Runtime 详解

前言 最近在学习Runtime的知识,恰巧发现了这篇博客《Objective-C Runtime》,在此基础上,进行了些许补充说明,如有错误或其他想法,欢迎提出交流。 基础知识 引言 简介 与Runtime交互 RunTime术语 消息 动态方法解析 消息转发 健壮的实例变量 动态添加属性(Object……

阅读全文

ReactiveCocoa 进阶

前言 在上篇文章中介绍了ReactiveCocoa的基础知识,接下来我们来深入介绍ReactiveCocoa及其在MVVM中的用法。 常见操作方法介绍 操作须知 所有的信号(RACSignal)都可以进行操作处理,因为所有操作方法都定义在RACStream.h中,因此只要继承RACStr……

阅读全文

ReactiveCocoa 基础

ReactiveCocoa基础 本文修改自最快让你上手ReactiveCocoa之基础篇 有关对 ReactiveCocoa 的看法可以看一下唐巧的这篇ReactiveCocoa 讨论会 ReactiveCocoa简介 ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框……

阅读全文

Objective-C:Category

本文转载自美图点评技术团队的:深入理解Objective-C:Category,略有修改。 前言 无论一个类设计的多么完美,在未来的需求演进中,都有可能会碰到一些无法预测的情况。那怎么扩展已有的类呢?一般而言,继承和组合是不错的选择。但是在Objective-C 2.0中,又提供了ca……

阅读全文

定时器 你真的会使用吗?

前言 定时器的使用是软件开发基础技能,用于延时执行或重复执行某些方法。 我相信大部分人接触iOS的定时器都是从这段代码开始的: 1 [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(action:) userInfo:nil repeats:YES] 但是你真的会用吗? 正文 iOS定时器 首先来介绍iOS中的定时器 iOS中的定时器大致分为这几类: NSTimer CADisplayLink GCD定时器 NSTimer 使用方法 NSTime定时器是我们比……

阅读全文

忽略 Xcode 8 中的注释警告

原因 从Xcode8.0开始,引入了文档注释警告,虽然是件好事,可是各种三方库爆出了一大堆警告: 解决方法: Bulid Settings -> Documentation Comments -> NO……

阅读全文