iOS开发
文章平均质量分 77
dark19940411
Keep moving,keep thinking.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
阿里的iOS协程库 coobjc 源码解析(一)——元组和协程
我最近在阅读阿里的iOS协程库,了解如何在iOS体系下实现协程上下文切换的过程。这是该系列的首篇文章,主要是了解了coobjc中的元组的实现,和coobjc中协程的上下文切换是如何进行的。原创 2022-06-23 23:50:47 · 338 阅读 · 1 评论 -
快速链接——加速编译和App启动
这篇文章主要是对 WWDC 22 的视频 Link Fast——Improve build and launch times 进行归纳总结。视频里聊到了,静态库和动态库的一些链接细节,以及 Xcode 14 为我们提供了哪些工具,来对我们的编译时长,做一些可能性的优化。......原创 2022-06-17 15:54:16 · 646 阅读 · 0 评论 -
TDD和BDD的单测思维
TDD和BDD的单测思维TDD和BDD是两种单测的指导思路,但是在实际生产中,我们实际上要不断地穿梭于这两种思路,才可以写出好的单元测试和好的业务代码。实际上它们的意义并不复杂,只是我们需要不断地思考和训练,才能把它们运用到不同的开发情况中。TDDTDD (Test-Driven Development) 也就是测试驱动开发。测试驱动开发让我们着重于单元测试,先有单元测试后有接口,这会让我们想着如何让我们设计的接口通过单元测试,并且实现完整的代码覆盖。通过这样的方式,我们会写出一个个逻辑尽可能单一,原创 2021-09-13 21:57:32 · 236 阅读 · 0 评论 -
单例猛于虎,请小心使用!
单例模式是一个在iOS里面备受使用的设计模式。但是我们在尽情使用它的时候,一定要注意到它其实也有很多隐含的问题。 其实这篇文章也相当于看了objcio上的避免滥用单例的一篇总结。 结合自己最近开发的心得,来讲一下单例的一些利与弊吧。创建方式首先单例最原始的创建方式就是static sharedInstance = nil;@implementation Singleton+ (instan原创 2016-10-21 11:48:28 · 625 阅读 · 0 评论 -
#import和#include的区别
#import是objective-c新增的包含头文件的办法,是#include的一个改善版,主要是防止循环包含头文件,但是现在有许多头文件都有保护措施,所以#import就看起来没那么地具有优势了。在使用方面呢,推荐#import针对objective-c头文件,#include针对c头文件。如#import<UIKit/UIKit.h>#include <mach/mach.h>#includ原创 2015-09-21 17:13:48 · 758 阅读 · 0 评论 -
GeekBand·iOS--Retain Cycle(引用循环)那些事
Retain Cycle:Retain Cycle是如何形成的呢?我们知道当一个父对象(主动方)持有子对象(被动方)时,子对象会随着父对象的消亡而消亡 但是假若两个对象互为父对象呢?会如何? 对,这样子,一个retain cycle就形成了,当然,互为父对象的引用都需要是强引用。 举个简单的例子: 就比如在一般的delegate情况下,一般都是子对象将delegate设为父对象,所以为原创 2015-08-16 22:59:12 · 1946 阅读 · 0 评论 -
nil/Nil/NULL/NSNull的区别
平时开发过程中经常遇到这几个表示空的关键字:nil、Nil、NULL,一向搞不清楚,作为一个有两年开发经验的程序员,连那么基础的东西都不知道未免太丢人了。首先要说明的是,nil、Nil、NULL三个关键字和NSNull类都是表示空,只是用处不一样,具体的区别如下:一、NULL1、声明位置stddef.h文件2、定义#undef NULL#i转载 2015-04-02 23:27:36 · 498 阅读 · 0 评论 -
NSRunLoop概述和原理
首先讲NSRunLoop之前, 说说timer这个东西:我们把环境都设置在Cocoa中,这里所讲的timer就用NStimer,当然这里的原理适用于其他系统的timer。因为NSTimer是作为一种timerresource加入到NSRunLoop中去,在当timer的时间累计到规定时间之后就触发timer的action。从这个过程上看来timer应该是很“准时”的,而且现转载 2014-12-24 16:35:12 · 472 阅读 · 0 评论 -
iOS开发——子视图与父视图的Frame的关系
子视图的Frame永远是根据父视图的Frame来确定的。Frame在子视图与父视图之间存在依赖关系。如两个UIView v1,v2,v1是父视图,v2是子视图,v2的frame的原点就是父视图的左顶点,即v1.frame.origin原创 2014-12-22 14:50:11 · 941 阅读 · 0 评论 -
关于iOS中的文件打散与使用FTP上传(伪断点续传大文件)
因为最近要写一个项目,里面考虑到网络的问题,而目前原创 2014-11-23 16:02:20 · 2567 阅读 · 0 评论 -
Objective-C中的writeToFile:atomically:中atomically布尔参数的解释
我以前用其它语言写文件时没发现这样的参数(也可能是没注意),似乎这个参数为NO和YES都能写入文件看了半天才明白,这个参数意思是如果为YES则保证文件的写入原子性,就是说会先创建一个临时文件,直到文件内容写入成功再导入到目标文件里.如果为NO,则直接写入目标文件里.转载 2014-12-24 13:29:24 · 618 阅读 · 0 评论 -
Swift 的函数式编程
Swift 相比原先的 Objective-C 最重要的优点之一,就是对函数式编程提供了更好的支持。 Swift 提供了更多的语法和一些新特性来增强函数式编程的能力,本文就在这方面进行一些讨论。Swift 概览对编程语言有了一些经验的程序员,尤其是那些对多种不同类型的编程语言都有经验的开发者, 在学习新的语言的时候更加得心应手。原因在于编程语言本身也是有各种范式的, 把握住这些特点转载 2015-01-08 11:58:56 · 863 阅读 · 0 评论 -
黑幕背后的__block修饰符
我们知道在Block使用中,Block内部能够读取外部局部变量的值。但我们需要改变这个变量的值时,我们需要给它附加上__block修饰符。__block另外一个比较多的使用场景是,为了避免某些情况下Block循环引用的问题,我们也可以给相应对象加上__block 修饰符。为什么不使用__block就不能在Block内部修改外部的局部变量?我们把以下代码通过 clang -r转载 2015-01-08 11:43:24 · 656 阅读 · 2 评论 -
Swift与Objective-C与C++混编的问题
看这篇文章之前,你得先确保你知道Swift如何与Objective-C混编,也知道Objective-C如何与C++混编,如果不知道,请百度一发,因为不会细讲。最近用swift写一个iOS的程序,由于有一部分的算法是用C++写的,只好去琢磨一下怎么用swift来调用C++的算法。swift调用OC是不难的,你只要在swift的工程里创建OC的文件,系统就会提问帮你生成一个bridging-原创 2015-01-07 20:30:15 · 2679 阅读 · 2 评论 -
一个奇怪的GCD内存不释放的问题
这个问题是我的同学提出来的,原帖在http://bbs.youkuaiyun.com/topics/390933411大概是这样:- (IBAction)touchToCreateThread:(id)sender { int i=10000; NSString * data; dispatch_queue_t queue = dispatch_queue_原创 2015-01-06 16:45:02 · 2177 阅读 · 0 评论
分享