4 MinecodeAir

尚未进行身份认证

暂无相关简介

等级
TA的排名 6w+

iOS多继承的实现及区别

来自我的个人博客Minecode.link多继承可以允许子类从多个父类派生,而Objective-C并不支持多继承,但我们仍可间接实现。Objective-C实现多继承主要可以通过协议、分类、消息转发来实现。我们来总结一下其使用以及优缺点。通过协议实现协议主要是用来提出类应遵守的标准,但其特性也可用来实现多继承。一个类可以遵守多个协议,也即实现多个协议的方法,以此来达到多继承的效果。概念上的单继承和

2018-01-14 23:39:44

iOS的几种定时器及区别

来自我的个人博客Minecode.link在开发中我们经常用到定时器,iOS为我们提供了多种定时器,包括NSTimer、CADisplayLink、GCD、NSThread(performSelector:afterDelay:),其本质都是通过RunLoop来实现,但GCD通过其调度机制大大提高了性能。定时器的使用中容易存在一些误区,故写本文总结。本文将介绍iOS的几种定时器、定时器的立即执行方法

2018-01-14 00:01:34

操作系统的进程/线程同步问题

来自我的个人博客 Minecode.link很多操作系统都提供了进程和线程的并发操作,他们可能在异步执行时访问共享数据,而并发访问共享数据可能带来数据不一致的同步问题,在此总结一下操作系统的进程/线程同步问题,以线程的并发为例。问题简介上图是多线程的状态(以iOS系统为例)。操作系统是通过CPU的时间片轮转来实现多线程的,每个线程有着对应的时间片,当其时间片到来时CPU会切换到该线程上下文并执行,待

2018-01-06 11:33:41

创建自己的CocoaPods库并提交指南

CocoaPods是一款很棒的依赖管理工具,在开发中也经常用它来导入开源第三方库。最近也想把自己的一些库开源并加入CocoaPods中,特总结一下自己制作CocoaPods库的过程。

2017-12-30 00:34:05

使用Git添加Tag的方法

作为版本管理工具,Git可以对某个版本打上标签(tag),表示本版本为发行版。在发布软件,以及使用CocoaPods创建依赖库等情况时,需要对其版本使用标签注释。故简单总结一下添加tag的方式。

2017-12-30 00:31:44

CALayer的寄宿图

视图可以导入图片,并设置其拉伸模式、放大比例之类。而图层也可以导入图片,CALayer提供了寄宿图的概念来实现这一点。简单来说,寄宿图就是图层之中包含的图。

2017-12-24 22:20:05

Objective-C协议遵守NSObject协议的原因

来自我的个人博客Minecode.link今天将用OC写的框架迁移至Swift时,发现OC写的协议都遵守了NSObject,而在Swift中没有此协议。所以记录一下这个问题的原因:在Objective-C 2.0之后,方法修饰符有@required和@optional(新增),也就是说增加了可选方法。对应的,也就需要在调用代理方法之前判断其是否被实现。也就是我们熟悉的如下写法:if (self.de

2017-12-24 22:17:58

Objective-C开发中Clang的使用

在使用Objective-C开发过程中,尤其在了解某些功能的底层实现时,常用到Clang编译器的命令。在此对常用命令做个简单总结。Clang的简介Clang是一个C、C++、Objective-C和Objective-C++编程语言的编译器前端,其后端为底层虚拟机(LLVM)。是一个GCC的替代品,也是Xcode的首选编译器。

2017-12-24 14:16:35

探究Objective-C属性关键字

在使用Objective-C时,频繁用到属性关键字。我们应该理解每种属性的意义,并了解一些偏底层的实现,故在此对OC的属性关键字做个浅析。

2017-12-24 14:14:17

TCP/IP五层模型消息解/封装仿真

消息封/解装仿真功能要求按照TCP五层模型仿真消息在两台主机之间的通信过程。 1. 在发送端模拟数据从高层到低层的封装过程,在接收端模拟数据从低层到高层的解封装过程。 2. 按照每层的功能对数据填加报头,并显示每一层得到的封/解装格式。 3. 传输层和网络层的封装格式参考TCP/IP的相应各层协议格式。 4. 网络层的IP报文需要模拟报文分段和重组的过程

2017-12-09 13:40:47

结构体的自引用及相互引用

在用C来实现数据结构以及部分算法时,经常用到结构体,比如实现树以及树的子节点时,就需要该结构体包含自身类型的成员变量。而最近在研究OC的匿名函数实现时,也涉及到了类似需求。同时,两个结构体之间相互引用也经常遇到问题。故简单总结一下C语言结构体的自引用语法。

2017-12-04 17:25:25

利用iOS ARKit制作AR传送门

利用ARKit制作一个类似哆啦A梦的AR任意门,iOS平台,使用Swift语言。

2017-11-11 00:22:10

50天iOS挑战(Swift) - 第10天:制作应用启动引导页面

很多应用在用户初次启动时,会展示一个What's new页面,如果打造一个多屏幕适配的启动界面,同时又保证低耦合性呢?Let's do it!本节将介绍启动界面的制作,下一节介绍登录界面的多屏幕适配。

2017-11-05 20:05:49

【DuerOS开发日记】3.打造属于自己的小度(2):小白小白!——唤醒词替换

上一教程中,我们成功使用PythonSDK并将其部署到我们自己的开发者账号中,那么这一节,我们开始让DuerOS真正成为我们的专属AI。叫惯了小度小度,想给它换个喜欢的名字怎么办?Let'sdoit!

2017-11-04 21:00:01

【DuerOS开发日记】2.打造属于自己的小度(1):使用PythonSDK

上一教程中,我们成功唤醒了小度,恭喜你踏入了AI的第一步!但是这样是基于镜像的,并不能去打造自己的小度。如果我们想要打造自己的小度,并在日后按自己的需求进行开发,又该如何配置呢?答案就是使用PythonSDK来自行配置。本篇我们将详细讲解如何通过SDK来唤醒小度。

2017-11-04 20:57:55

【DuerOS开发日记】1.据说小度在等待帅的人把它唤醒

等了很久,终于收到DuerOS开发套件了。开此专题记录开发笔记,希望对他人入门有所帮助。

2017-11-04 20:55:46

50天iOS挑战(Swift) - 第3天:简单利用CoreLocation获取当前地址

做一个利用CoreLocation获取当前地址的小demo,任务量较小,放松一下主要知识点: CoreLocation

2017-10-22 23:18:32

50天iOS挑战(Swift) - 第5天:模仿网易新闻顶端滑动分类列表

本Demo模仿网易新闻的顶端分类列表,实现顶端ScrollView与CollectionView的交互,并在滑动或点击时完成字体变大变小等动态元素。**主要知识点**: Collection View, UIScrollView,delegate

2017-10-22 19:30:25

Swift开发指南:使用Swift与Cocoa和Objective-C(Swift 4) - 2.互通性

章节导航:Swift开发指南:使用Swift与Cocoa和Objective-C(Swift 4) - 1.入门 与Objective-C API进行交互互操作性是能够在任何一个方向上与Swift和Objective-C进行接口,让您访问并使用以其他语言的文件中的一些代码。当您开始将Swift集成到应用程序开发工作流程中时,了解如何利用互操作性来重新定义、改进和增强编写Cocoa应用程序的方式是一

2017-10-02 19:35:23

Swift开发指南:使用Swift与Cocoa和Objective-C(Swift 4) - 1.入门

本指南介绍了Swift和Objective-C兼容性的三个重要方面,您可以在开发Cocoa应用程序时将其利用它: - **互操作性**让您可以在Swift和Objective-C代码之间进行交互,允许您在Objective-C中使用Swift类,并在编写Swift代码时利用熟悉的Cocoa类、模式和实践。 - **混编和匹配**允许您创建包含可以彼此通信的Swift和Objective-C文件的混合语言应用程序…

2017-10-02 15:56:25

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!