Save&Load

Save The World, Load The Game


  • Home

  • Tags

  • Archives

iOS底层探索 - runtime与消息发送

Posted on 2018-05-14 | In Tech

前言

探索完对象的创建与销毁,下面我们来看一下Objective-C一个特性,那就是runtime,中文翻译叫做运行时。是指Objective-C编译后的代码不是直接运行的,而是在一个运行时的系统中动态调用的。正是因为这个特性,使得我们可以做到很多有意思的事情。

Read more »

iOS底层探索 - 实例对象的创建

Posted on 2018-04-13 | In Tech

前言

之前探索完对象的销毁,这次就来看看对象的创建。常见创建一个实例的方法就是调用[[XXX alloc] init]来实现,既然是两个方法调用,那我们就一个一个来看。

落叶生根 - alloc

我们先来看下runtime的源码中alloc都做了什么,

1
2
3
4
5
6
7
8
9
+ (id)alloc {
return _objc_rootAlloc(self);
}

id
_objc_rootAlloc(Class cls)
{
return callAlloc(cls, false/*checkNil*/, true/*allocWithZone*/);
}
Read more »

iOS底层探索 - ARC下的dealloc

Posted on 2018-04-08 | In Tech

前言

解决的crash越多,越觉得了解对象的完整生命周期是一件很有必要的事情。所以有了这个系列,至于为什么先说dealloc,那是因为对象在创建的时候一般不会有问题,但是对象在释放的时候往往会有很多问题。

dealloc历史演进

MRC时代的dealloc

在MRC时代,我们需要手动管理对象的释放。例如:

1
2
3
4
5
6
7
8
- (void)dealloc {
self.array = nil;
self.dictionary = nil;
// ... //
// 非Objc对象内存的释放,如CFRelease(...)
// ... //
[super dealloc];
}

简单来说就是先释放自己内部的成员变量和非Objc对象,然后再调用[super dealloc],继续父类的析构。

Read more »

2017年终总结

Posted on 2018-02-24 | In Talk

回首望去2017年已经过去了,拖延症的毛病依然还在,这不本来准备年前写的总结硬是拖到了年后。。。不过2017年依然是忙碌的一年,在这一年里有欢乐、有痛苦、有喜悦,有泪水,那就来总结一下吧。

Read more »

Xcode 9 尝鲜

Posted on 2017-06-08 | In Tech

背景

WWDC 2017上发布了Xcode 9的beta版本,在该版本中苹果对Xcode的编辑器进行了重写,还加入了很多有用的新功能。所以本着尝鲜的心态第一时间下载了Xcode 9并体验使用了一天,这里和大家分享一下。

Read more »

2016年终总结

Posted on 2017-03-12 | In Talk

这篇总结本来在16年年底的时候就想写了,因为16年发生了太多的事情,觉得不写一写是在是浪费了。但是没想到各种事情接踵而至,忙来忙去一转眼17年都过去六分之一了,心想不能再拖了就算熬夜也要把这篇年终总结写出来。

Read more »

Swift Project 39&40 - EMBEDDED COLLECTION VIEW & STRETCHY HEADER

Posted on 2017-03-12 | In 100Days

最后两个好没难度啊

主要学习的内容:

  • 实现透明的navigation bar
  • 在table cell中实现collection views
  • 实现下拉变大的效果

开发环境:

  • macOS 10.12
  • Xcode 8.2
  • iOS 10.2
  • Swift 3.0
Read more »
12…9
Santos Lee

Santos Lee

LAZY BEAR

62 posts
6 categories
46 tags
GitHub E-Mail
© 2015 — 2018 Santos Lee
Powered by Hexo v3.5.0
|
Theme — NexT.Gemini v6.1.0