東引甌越

不断学习, 与时俱进.

嗨,我是孙亚洲(@sunyazhou13),一名来自北国冰城的iOS/macOS开发者.现居帝都北京.开发数年有余,没有为往圣续绝学深感惭愧,今2017年开始写博客.望诸位同仁多多指教.


  1. 深入理解RunLoop

    前言RunLoop 是 iOS 和 OSX 开发中非常基础的一个概念,这篇文章将从CFRunLoop的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用RunLoop实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。 本文内容 RunLoop 的概念 RunLoop 与线程的关系 RunLoop 对外的接口 RunLoop 的 Mode RunLoop 的内部逻辑 RunLoop 的底层实现 苹果用 RunLoop 实现的功能 Autore …

    iOS开发, macOS开发 继续阅读

  2. Swift 4 中的数组技巧

    前言年前买了本Swift 进阶(swift4.0),过完年回来正在一点点学习,不得不说喵神写的东西还是不错的,¥69元对广大程序员来说已经不算啥了.如果感兴趣可以买一本,真心不错 当我从头来学习数组的时候发现好多函数真的太有用了 Swift 4.0 中的可变数组技巧我们可用 Xcode 创建playground 来进行练习 首先创建个数组 let array = NSMutableArray(array: [1, 2, 3, 4 , 5, 6]) for in 循环遍历 for x in arr …

    iOS开发, macOS开发 继续阅读

  3. 什么是符号表?

    前言iOS 开发中经常回定位 bug 通过崩溃堆栈,此时我们需要借助符号表来恢复内存地址对应代码调用信息,为了解开这个大家耳熟能详却总有人问的问题的面纱,我在 bugle 平台和一些文章中收集了相关知识整理出来,以便后续方便记忆. 本周主要内容如下 什么是符号表? 为什么要配置符号表? dSYM文件? 什么是符号表?符号表是内存地址与函数名、文件名、行号的映射表。符号表元素如下所示: <起始地址> <结束地址> <函数> [<文件名>:< …

    iOS开发, macOS开发 继续阅读

  4. 计算机图形渲染的流程

    前言今天在网上找到了一篇有价值的文章,来说明计算机中的图像渲染流程以及像素点计算和坐标点相关的知识. 计算机图形渲染的流程计算机的绘图过程可以简单用流水线来说明,而产品(数据)就是经过流水线作业(渲染)到屏幕的图像。这条流水线可以简化为(本文的概念):绘图位置座标指定;着色指定;输出指定;下图简单解释了这一个流水线过程。计算机绘图需要一个输入绘图数据,这个数据可以是用户指定的,也可以是操作系统决定的,也可以是混合的。这些数据是分组的。 座标生成:当绘图数据送入座标生成系统后,流水线就会对其进 …

    iOS开发, macOS开发 继续阅读

  5. Learning AV Foundation(五)播放视频

    前言很久没有写Learning AV Foundation相关的文章了,言归正传本篇介绍一下简单的视频播放 了解视频播放之前我们来看戏AVPlayer需要的一些组件模型 AVPlayerAVPlayer是一个用来播放基于基于时间的视听媒体的控制对象,支持播放: 本地 媒体文件 异步下载 媒体文件 HTTP Live Streaming协议的流媒体 文件 AVPlayer 是个 逻辑层组件 (应用可以分为如下几层) UI层业务逻辑层持久层+网络层 如果播放MP3或AAC等音频文件, …

    Learning AV Foundation, iOS开发, macOS开发 继续阅读

  6. NLP分词WordEmbeding

    前言学习过程中记录一下python代码 #!/usr/bin/env python# coding:utf8import sysreload(sys)sys.setdefaultencoding('utf8')# 加载包from gensim.models import Word2Vecfrom gensim.models.word2vec import LineSentence# 训练模型# sentences = LineSentence('wiki.zh.word.text')# siz …

    python开发 继续阅读

  7. 使用Python操作MySQL数据库

    前言为了实现不斷學習 與時俱進周末把大部分时间放在了学习Python上.在最近的学习中有一些有价值的部分都摘录整理出来放到博客上,以免后续用到的时候忘记时回来翻翻博客. 我是在study.163.com的这个《全栈数据工程师养成攻略》课程中学习的,推荐大家学习一下. 本篇主要内容主要分为三个大部分 搭建Web环境 数据库MySQL的使用方法 使用Python操作MySQL 搭建Web环境 Web环境: Apache、Nginx… Web服务启动中相关配置. Web环境: Apache、N …

    python, web开发 继续阅读

  8. AVAudioSession-Category各种姿势

    前言2018新年第一篇, 梳理AVAudioSession的Category,解决音频开发中的各种播放被打断或者首次启动时无声音的问题 开篇由于iOS系统的特殊性,所有App共用一个AVAudioSession所以这个会话是个单例对象.(macOS是支持同时播放多路音频文件) 当遇到插拔耳机,接电话,调起 siri,等等,就出现音频会话被系统时间打断等行为表现: 是进行录音还是播放? 当系统静音键按下时该如何表现? 是从扬声器还是从听筒里面播放声音? 插拔耳机后如何表现? 来电话/闹钟响了后 …

    iOS开发, macOS开发 继续阅读

  9. 2017年终总结

    前言 时间像车轮一样在飞转历史像江河一样在流淌整整走过了365个风雨历程2017年过的如此不寻常一度春夏秋冬 一度雨雪风霜一度翻山越岭 一度起伏延宕 又一年过去了,我也得墨守成规的按时交出我的年终总结了,为了不标新立异,我必须尽量不废话.(talk is cheap, show me the code!) 2017回顾这一年的重点事件主要如下: 技术 买房 工作 书法 读书 运动 驾照 技术这一年让我唯一有些许成就感的事情莫过于我搭建了自己的技术博客,能在这里记录我的技术成长和生活 …

    生活 继续阅读

  10. Markdown中插入音频文件

    前言喜欢在博客文章打开的时候 播放一首背景音乐, 但Markdown本身是不支持插入音频视频,带着这个疑问开始这篇文章. markdown插入音乐markdown其实就是 一种html的转换语法,其实内部也同时支持直接写html标签, 如果不了解各种标签请点击w3cschool查看各种 API 的用法,此时要用到的标签为iframe,代码如下所示,其中 div用于控制格式,若无则默认为居左 frameborder用于规定是否显示框架周围的边框,1为是,0为否 marginwidth及margi …

    iOS开发 继续阅读