iOS
Julday
这个作者很懒,什么都没留下…
展开
-
一篇很全面的IOS面试题(上)
目录一、基础知识点二、第三方框架三、算法四、编码格式(优化细节)五、其他知识点一、基础知识点设计模式是什么? 你知道哪些设计模式,并简要叙述?设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型的事情。1). MVC模式:Model View Control,把模型 视图 控制器 层进行解耦合编写。2). MVVM模式:Model View ViewModel ...转载 2019-04-17 13:26:05 · 574 阅读 · 0 评论 -
(强烈推荐)移动端音视频从零到上手
.作者:小东邪链接:https://juejin.im/post/5d29d884f265da1b971aa220概述随着整个互联网的崛起,数据传递的形式也在不断升级变化,总的流行趋势如下:纯文本的短信,QQ -> 空间,微博,朋友圈的图片文字结合 -> 微信语音 -> 各大直播软件 -> 抖音短视频音视频的发展正在向各个行业不断扩展,从教育的远程授课...转载 2019-07-18 15:59:25 · 976 阅读 · 0 评论 -
Swift:一天学会,三天写项目
转载于作者:Cooci_和谐学习_不急不躁链接:https://www.jianshu.com/p/18caa2ea5318最近V4.0框架班马上要开班,很多同学有点焦虑!问为什么?-- 不会Swift,完全没有接触过啊!内心换成一批转载 2019-07-05 14:22:42 · 464 阅读 · 0 评论 -
协程coobjc源码分析之co调度
这篇文章主要通过源码分析,介绍coobjc中的co调度。这个问题搞清楚之后,co_lauch做了什么,看起来就很简单了。我们先了解coroutine和scheduler这两个关键的数据结构。coroutine在协程的数据结构中和调度相关的字段。entry: 需要执行的任务,最终指向的是co_launch(block)中的block。userdata: 一个OC的类对象COCorouti...转载 2019-07-08 14:33:42 · 413 阅读 · 0 评论 -
字符串本地化
一个应用在进行多语言本地化的时候涉及到大量的工作。因为这一期的主题是字符串,所以本文主要探讨字符串的本地化。字符串本地化有两种方法:修改代码或修改 nib 文件和 storyboard。本文将专注于通过代码实现字符串的本地化。NSLocalizedStringNSLocalizedString 这个宏是字符串本地化的核心工具。它还有三个鲜为人知的变体:NSLocalizedStringFrom...转载 2019-05-28 13:21:08 · 809 阅读 · 0 评论 -
字符串解析
在几乎每一种计算机程序语言中,解析字符串都是我们不得不面对的问题。有时这些字符串以一种简单的格式出现,有时它们又变得很复杂。我们将利用多种方法把字符串转换成我们需要的东西。下面,我们将讨论正则表达式、扫描器、解析器以及在什么时候使用它们。正则法 vs. 上下文无关文法(Context-Free Grammars)首先,介绍一点点背景知识:解析一个字符串,其实就是用特定的语言来描述它。例如:把 ...转载 2019-05-17 16:51:54 · 2372 阅读 · 1 评论 -
字符串渲染
在本期中我们已经讨论了很多关于字符串不同的话题,从编码到本地化再到语法分析。但多数情况下,字符串最终还是需要被绘制到屏幕上供用户查看、交互。这篇文章涵盖了最基本、最好的练习,以及在用户界面上呈现字符串可能遇到的常见陷阱。如何将字符串绘制到屏幕上简单起见,我们先看看 UIKit 在字符串渲染方面为我们提供了哪些控件。之后我们将讨论一下对于字符串的渲染,iOS 和 OS X 系统中有哪些相似和不同...转载 2019-05-16 13:34:25 · 465 阅读 · 0 评论 -
玩转字符串
在每个应用里我们都大量使用字符串。下面我们将快速看看一些常见的操作字符串的方法,过一遍常见操作的最佳实践。字符串的比较、搜索和排序排序和比较字符串比第一眼看上去要复杂得多。不只是因为字符串可以包含代理对(surrogate pairs )(详见 Ole 写的这篇关于 Unicode 的文章) ,而且比较还与字符串的本地化相关。在某些极端情况下相当棘手。苹果文档中 String Program...转载 2019-05-15 14:41:14 · 353 阅读 · 0 评论 -
NSString 与 Unicode
当你在处理文本时,如果你不是在写一些非常古老的代码(legacy code),那么你一定要使用 Unicode。幸运的是,苹果和 NeXT 一直致力于推动 Unicode 标准的建立,而 NeXT 在 1994 年推出的 Foundation Kit 则是所有编程语言中最先基于 Unicode 的标准库之一。但是,即使 NSString 完全支持 Unicode,还替你干了大部分的重活儿,处理各种...转载 2019-05-14 13:27:26 · 359 阅读 · 0 评论 -
View Controller 容器
在 iOS 5 之前,view controller 容器是 Apple 的特权。实际上,在 view controller 编程指南中还有一段申明,指出你不应该使用它们。Apple 对 view controllers 的总的建议曾经是“一个 view controller 管理一个全屏幕的内容”。这个建议后来被改为“一个 view controller 管理一个自包含的内容单元”。为什么 Ap...转载 2019-05-13 16:02:59 · 155 阅读 · 0 评论 -
测试 View Controllers
我们不是迷信测试,但它应该帮助我们加快开发进度,并且让事情变得更有趣。让事情保持简单测试简单的事情很简单,同样,测试复杂的事会很复杂。就像我们在其他文章中指出的那样,让事情保持简单小巧总是好的。除此之外,它还有利于我们测试。这是件双赢的事。让我们来看看测试驱动开发(简称 TDD),有些人喜欢它,有些人则不喜欢。我们在这里不深入讨论,只是如果用 TDD,你得在写代码之前先写好测试。如果你好奇的话...转载 2019-05-11 14:00:24 · 206 阅读 · 0 评论 -
整洁的 Table View 代码
Table view 是 iOS 应用程序中非常通用的组件。许多代码和 table view 都有直接或间接的关系,随便举几个例子,比如提供数据、更新 table view,控制它的行为以及响应选择事件。在这篇文章中,我们将会展示保持 table view 相关代码的整洁和良好组织的技术。UITableViewController vs. UIViewControllerApple 提供了 U...转载 2019-05-10 14:43:38 · 214 阅读 · 0 评论 -
更轻量的 View Controllers
View controllers 通常是 iOS 项目中最大的文件,并且它们包含了许多不必要的代码。所以 View controllers 中的代码几乎总是复用率最低的。我们将会看到给 view controllers 瘦身的技术,让代码变得可以复用,以及把代码移动到更合适的地方。你可以在 Github 上获取关于这个问题的示例项目。把 Data Source 和其他 Protocols 分离...转载 2019-05-07 13:31:47 · 298 阅读 · 0 评论 -
关于 MVC 的一个常见的误用
如何避免把 Model View Controller 写成 Massive View Controller 已经是老生常谈的问题了。不管是拆分 View Controller 的功能 (使用多个 Child View Controller),还是换用“广义”的 MVC 框架 (比如 MVVM 或者 VIPER),又或者更激进一点,转换思路使用 Reactive 模式或 Reducer 模式,其实...转载 2019-05-06 16:27:15 · 216 阅读 · 0 评论 -
开发多年·为何还要强迫自己去学习
年龄的增长的是不可避免,他是时间行走的证明却也是程序员最不想面对的噩耗,不知从何开始程序员成为了吃青春饭的存在变成了用青春去“搏命”工作,看着时不时掉落的枯发我渐渐越来越焦虑,有几个同事因为年纪的关系——32岁左右正值而立之年却要离职走人,这使得年龄越来越接近红线的我,越来越急促、焦虑。看着双肩上那名为家庭的两个字,这双肩所但着的责任是我每天奔波于996工作的动力。想要在“退休”时把自身的价值最大...转载 2019-04-20 16:00:31 · 195 阅读 · 0 评论 -
iOS使用核心的50行代码实现一个路由组件
使用组件化是为了解耦处理,多个模块之间通过协议进行交互。而负责解析协议,找到目的控制器,或者是返回对象给调用者的这个组件就是路由组件。本文讲解如何使用核心的50行代码实现一个路由组件。本文包含以下内容:组件化和路由路由的实现路由注册实现路由使用实现客户端的使用一些小想法提供一个Demo可以在YTRouterDemo这里找到这里找到组件化和路由之前看过挺多的关于路由管理、路由处理...转载 2019-04-19 14:42:24 · 395 阅读 · 0 评论 -
一篇很全面的IOS面试题(下)
如何实现视图的变形?答:通过修改view的 transform 属性即可。在手势对象基础类UIGestureRecognizer的常用子类手势类型中哪两个手势发生后,响应只会执行一次?答:UITapGestureRecognizer,UISwipeGestureRecognizer是一次性手势,手势发生后,响应只会执行一次。字符串常用方法:NSString ...转载 2019-04-18 13:24:33 · 722 阅读 · 0 评论 -
Objective-C Runtime:深入理解成员变量与属性
##类型编码在Runtime中,编译器将每个方法的返回值和参数类型编码为一个字符串,并将其与方法的selector关联在一起。由于该编码方案具有一定的通用性,系统提供了编译器指令@encode来获取特定编码后的字符串。当给定一个类型时,@encode返回这个类型的字符串编码。这些类型可以是诸如int、指针等基本类型,也可以是结构体、类等类型。事实上,任何可以作为sizeof()操作参数的类...转载 2019-04-15 14:08:26 · 315 阅读 · 0 评论 -
iOS应用程序瘦身的静态库解决方案
为什么要给程序瘦身?随着应用程序的功能越来越多,实现越来越复杂,第三方库的引入,UI体验的优化等众多因素程序中的代码量成倍的增长,从而导致应用程序包的体积越来越大。当程序体积变大后不仅会出现编译流程变慢,而且还会出现运行性能问题,会增加应用下载时长和消耗用户的移动网络流量等等。因此在这些众多的问题下需要对应用进行瘦身处理。一个应用程序由众多资源文件和可执行程序文件组成,资源文件的优化不在本文探...转载 2019-07-21 19:24:18 · 262 阅读 · 0 评论