自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DCSnail-蜗牛

但行耕耘...

原创 由Trust Wallet理解以太坊钱包管理和智能合约

在上篇文章中, 已经介绍过Trust的项目架构、业务流程等了。这篇文章将会解读一些核心的功能, 包括上篇文章提到的EtherKeystore这个业务类, 还有网络层的如何调用智能合约, 以及其它的合约调用方式。 钱包管理 钱包管理就要提到一个类EtherKeystore, 应用的核心业务的处理类,...

2018-11-17 23:07:17 3632 8

原创 以太坊钱包 Trust项目解读之架构和流程

由于前阵子工作涉及到区块链方面的业务, 再加上自己对技术的热忱, 本人也是不断地学(恶)习(补)这方面的知识。在 github上的有很多优秀的开源钱包的代码, 比如说今天要分享的iOS版本的 Trust, 还有这个月24号刚刚官宣开源的 imToken。

2018-10-31 18:44:45 4421 1

原创 浅谈block实现原理及内存特性之一: 内部结构和类型

浅谈block实现原理及内存特性系列文章之一: 内部结构和类型

2018-03-16 17:01:20 1280 3

原创 ARC到底帮我们做了哪些工作?

从iOS5开始, 就支持自动引用计数(Automatic Reference Counting, ARC)了, 所以就变得更为简单了。ARC几乎把所有内存管理事宜都交由编译器来决定, 开发者只需专注于业务逻辑。

2018-03-07 18:47:08 3316 0

原创 iOS架构模式(MVC/MVCS/MVP/MVVM/VIPER)

在进行架构设计的时候到底是选择MVC或者MVVM还是选择VIPER呢? 这就要根据你的业务需求, 项目规模以及项目未来的推演预测等诸多因素了. 这也是争议颇多的话题,所以我在这里来把几个主流思想做一个梳理, 今天就来说一说 ——— iOS架构模式

2016-07-27 22:30:20 8650 0

原创 SwiftTips之Language&API

继令你极度舒适的Swift集合类高阶函数之后,把很久之前Swift知识进行了梳理并总结成文。这些Swift知识点大多是一些细节,容易忽略但使用效果又极佳,其中包括语言基础、内存、指针、OC差异、优雅奇点、开发环境等方面。

2019-07-31 10:46:11 144 0

原创 令你极度舒适的Swift集合类高阶函数

在Swift的集合类型中,有许多十分便捷的函数。相比于Objective-C,这些高阶函数会引起你的极度舒适。因为在Swift的许多函数中引入了闭包元素,这就直接造就了它的灵活性,简直就是极致的便捷。

2019-06-29 18:08:37 332 0

原创 Swift基础知识碎片

1.函数的可变参数 同一个方法中只能有一个可变参数,而且不限制可变参数在所有参数中的位置。在OC中可变参数只能作为方法中参数的最后一个。 func sum(input: Int...) -> Int { return input.reduce(0, +) } sum(...

2019-02-28 21:19:43 457 0

原创 iOS中的静态库和动态库

iOS的静态库和动态库详解、iOS从编译到目标文件、Mach-O文件

2019-01-22 15:03:44 241 0

原创 区块链技术及应用

区块链技术及应用

2018-12-31 22:21:56 523 1

原创 WatchOS开发教程之六: 表盘功能开发

WatchOS表盘开发流程, 工作原理, 表盘类型和表盘模板类型总结

2018-09-03 18:32:49 3544 2

原创 WatchOS开发教程之五: 通知功能开发

WatchOS通知静态和动态页面的开发、通知推送的分发规则、通知的授权和配置

2018-08-29 18:39:09 1186 0

原创 WatchOS开发教程之四: Watch与 iPhone的通信和数据共享

Watch与 iPhone的通信、WatchConnectivity通信框架、数据共享

2018-07-16 22:04:16 2292 1

原创 WatchOS开发教程之三: 导航方式和控件详解

WathOS的导航方式、系统控件使用详解包括Label, Image, Group, Table等

2018-07-12 15:05:42 1617 0

原创 WatchOS开发教程之二: 布局适配和系统Icon设计尺寸

WatchOS布局方式和适配方法、WatchOS中图片应用场景、Icon设计尺寸和线条设计

2018-07-09 17:14:30 1665 0

原创 WatchOS开发教程之一: Watch App架构及生命周期

Watch App架构和生命周期、WKInterfaceController的生命周期、WatchOS与 iOS的共性技术

2018-07-05 17:48:50 3795 0

原创 从一个例子来看Tagged Pointer特性

从采用64位处理器后, 为了节省内存和提高执行效率,苹果提出了Tagged Pointer的概念。减少一半的内存占用,以及3倍的访问速度提升,100倍的创建、销毁速度提升。

2018-06-04 18:16:22 742 0

原创 问题: 修改Xcode中源码时不再出现提示框

有些时候, 当你在查看Xcode中的源码API的时候, 无意修改了代码, 会对你有一个提示: Do you want to unlock it? 需要你选择Don ‘t Unlock 或者是 Unlock。

2018-05-31 18:20:25 262 0

原创 高效 OC开发之系统框架

系统框架,集合遍历,NSCache,+load和+initialize等。

2018-05-24 16:08:16 378 0

原创 高效 OC开发之Block和GCD

block, GCD,NSOperationQueue等实现多线程。

2018-05-21 12:53:04 380 0

原创 浅谈Block实现原理及内存特性之三: copy过程分析

浅谈block实现原理及内存特性系列文章之三: copy过程分析

2018-04-02 10:12:53 643 0

原创 浅谈Block实现原理及内存特性之二: 持有变量

浅谈block实现原理及内存特性系列文章之二: 持有变量

2018-04-02 10:10:52 465 0

原创 clang编译错误: fatal error: 'UIKit/UIKit.h' file not found

错误 这是一个使用clang编译器将Objective-C代码编译成C语言代码, 并生成在一个.cpp的 C++文件中。具体的命令行是: $ cd 当前文件夹 $ clang -rewrite-objc SomeFile.m 这是, 可能会遇到一个错误就是如下: fata...

2018-03-19 10:52:36 3532 0

原创 高效 OC开发之内存管理

引用计数,ARC的工作原理,dealloc和循环引用的问题,以及其它关于内存管理的部分特性。

2018-02-28 17:18:43 525 0

原创 高效 OC开发之协议与分类

关于协议,分类,以及扩展的高效使用。

2018-02-08 17:11:39 289 0

原创 nullable、nonnull、__nullable、__nonnull、_Nullable、__Nonnull 的区别

在苹果自己的API中, 我们也见过许多的参数的修饰符, 比如说在方法中修饰参数可否为空的标识。今天来总结下 nullable, nonnull, __nullable, __nonnull, _Nullable, __Nonnull 之间的区别。 作用 首先, nonnull, __non...

2018-02-01 19:02:43 506 0

原创 可变参数、不定参数(va_list、va_start、va_arg、va_end)

如何实现方法中传入参数为可变参数或不定参数, 方法中的某个形式参数可以接收多个参数(不确定个数的参数)。

2018-01-19 16:12:13 243 0

原创 问题: Mac外联硬盘不能更改“-”中的一个或多个项目,因为它们正在使用中

问题 在Mac中, 外联移动硬盘或 U盘是 Windows 系统下的 NTFS 分区格式,而 Mac 系统原生是不支持这种格式的。而且很多时候还会产生一些其他的问题, 比如下面这个: 这是第二个文件是灰色的, 当对它进行操作时, 会有一些错误, 会如下提示: 不能更改“somefil...

2018-01-12 14:29:52 12547 9

原创 错误: clang: error: no such file or directory: '/Users/...', clang: error: no input files

错误 clang: error: no such file or directory: ‘/Users/dcsnail/Desktop/…/SomeClass.m’ clang: error: no input files 解决 在Xcode 中搜索当前类名, 会发现同...

2018-01-05 11:14:36 5436 4

原创 Swift 之访问权限

控制访问级别Swift 为代码的实体提供个五个不同的访问级别, 分别是open、public、internal、fileprivate、private。

2018-01-02 15:15:27 527 0

原创 Swift关键字总结下篇

Swift 中有多少关键字? 在Swift官方文档的词汇结构中, 有非常多的关键字, 它们被用于声明中、语句中、表达式中、类中、模式中, 还有以数字符号#开头的关键字, 以及特定上下文环境使用的关键字。本文中涉及的代码可以在这里下载代码资源。 另外, 在特性中还有一些关键字, 是以@开头的关键...

2017-12-29 10:35:01 2445 1

原创 Swift关键字总结上篇

Swift 中有多少关键字? 在Swift官方文档的词汇结构中, 有非常多的关键字, 它们被用于声明中、语句中、表达式中、类中、模式中, 还有以数字符号#开头的关键字, 以及特定上下文环境使用的关键字。 本文中涉及的代码可以在这里下载代码资源。 另外, 在特性中还有一些关键字, 是以@开头的...

2017-12-24 20:41:13 2498 0

原创 问题: Header Search Paths 与 User Header Search Paths 的区别

分析在Xcode->Target->BuildSettings中, 有两个设置一个是User Header Search Paths, 一个是 Header Search Paths. 其实还有一个废弃的Always Search User Paths.

2017-12-15 15:05:22 2050 0

原创 高效 OC开发之接口与API设计

Objective-C的命名规则及命名空间,私有方法的处理。另外,还有readOnly,NSError,NSCopying协议的高效使用。

2017-11-05 13:02:38 562 0

原创 问题: NSIndexpath属性item和row的根本区别

问题NSIndexpath属性item和row的根本区别是什么?

2017-10-31 18:03:48 4014 0

原创 +load和+initialize方法的探究

前言在OC中, 根类NSObject或其子类被加载和初始化的时候,会触发一些方法,可以在适当的情况下做一些定制处理。其实, 这正是对应着load和initialize方法。

2017-08-23 16:02:49 383 0

原创 错误: HTTPS请求报错Error Code=-999 "cancelled"

Error Domain=NSURLErrorDomain Code=-999 “cancelled” UserInfo…….

2017-07-31 15:32:49 31942 0

原创 探究UIScrollView及其子类布局和适配的影响因素

前言 很久之前写过两篇文章, 都是关于适配布局的, 分别是iOS6与iOS7屏幕适配 edgesForExtendedLayout和影响屏幕适配的因素及tableview的ContentSize不正确的问题。当然也欢迎大家先看下这两篇文章预热一下, 因为这篇文章其实是对上面这两篇的不足补充和勘正...

2017-07-23 00:18:43 1088 0

原创 错误: iOS审核被拒之 ipv6

苹果审核被拒原因:We discovered one or more bugs in your app when reviewed on iPad running iOS 10.3.2 on Wi-Fi connected to an IPv6 network

2017-06-29 17:38:07 2401 0

原创 浅谈DNS劫持及安全应对措施

由于博主公司是从事金融行业的, 所以在安全方面还是很重视的。而且现在iOS基本全部的应用都改用HTTPS协议了, 那还有必要针对DNS劫持做出安全措施吗? 今天咱们来谈一谈。

2017-06-24 13:59:06 1598 0

提示
确定要删除当前文章?
取消 删除