Giter Club home page Giter Club logo

ifgyong.github.io's Introduction

ifgyong.github.io's People

Contributors

dependabot[bot] avatar ifgyong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ifgyong.github.io's Issues

iOS底层原理 runtime - super、hook、以及简单应用--(8) | fgyong的技术博客

http://fgyong.cn/2019/12/01/iOS%E5%BA%95%E5%B1%82%E5%8E%9F%E7%90%86%20runtime%20-%20super%E3%80%81hook%E3%80%81%E4%BB%A5%E5%8F%8A%E7%AE%80%E5%8D%95%E5%BA%94%E7%94%A8--(8)/

关键字 super关键字super,在调用[super init]的时候,super会转化成结构体__rw_objc_super 12345struct __rw_objc_super { struct objc_object *object; //消息接受者 struct objc_object *superClass; //父类 __rw_objc_super(struct obj

APP 资源管理优化 | fgyong的技术博客

http://fgyong.cn/2019/12/05/APP%E8%B5%84%E6%BA%90%E4%BC%98%E5%8C%96/

在APP中,使用 X1、X2、X3已经是司空见惯的事情了,网上出了清空不再使用的图片和类,是不是做完这些不能再进一步优化了,答案是否定的,当然可以的,今天再探究一下资源管理优化。 资源大部分是图片,说到图片必须讲一下位图和矢量图 位图 位图图像(bitmap),亦称为点阵图像或栅格图像,是由称作像素(图片元素)的单个点组成的。这些点可以进行不同的排列和染色以构成图样。当放大位图时,可以看见赖以构成

iOS图片优化 | fgyong的技术博客

http://fgyong.cn/2019/12/13/iOS%E5%9B%BE%E7%89%87%E4%BC%98%E5%8C%96%20/

基于现在iOS11新生成的图片都是HEIF,该图片使用[UIImage image:name]已不在那么优雅,图片大小为1.8m大小的,读进手机内存,直接飙升了45M,这是我们不想看到的结果,一个页面有多个这样子的图的话,恐怕就是灾难了。 既然原图不能读入,那么如何可以用更少的内存和CPU来解决呢? 这就要先了解该图片的编码了。 HEIC HEIF 带有元数据的HEIF的另一种形式。HEIC文件包

iOS底层原理 RunLoop基础总结和随心所欲掌握子线程RunLoop生命周期 --(9) | fgyong的技术博客

http://fgyong.cn/2019/12/01/iOS%E5%BA%95%E5%B1%82%E5%8E%9F%E7%90%86%20RunLoop%E5%9F%BA%E7%A1%80%E6%80%BB%E7%BB%93%E5%92%8C%E9%9A%8F%E5%BF%83%E6%89%80%E6%AC%B2%E6%8E%8C%E6%8F%A1%E5%AD%90%E7%BA%BF%E7%A8%8BRunLoop%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F%20--(9)/

使用钩子实现了对字典和数组的赋值的校验,顺便随手撸了一个简单的jsonToModel,iOS除了runtime还有一个东西的叫做runloop,各位看官老爷一定都有了解,那么今天这篇文章初识一下runloop。 什么是runloop简单来讲runloop就是一个循环,我们写的程序,一般没有循环的话,执行完就结束了,那么我们手机上的APP是如何一直运行不停止的呢?APP就是用到了runloop,保证

iOS底层原理 内存管理 那些你不知道的原理汇总 --(12) | fgyong的技术博客

http://fgyong.cn/2019/12/01/iOS%E5%BA%95%E5%B1%82%E5%8E%9F%E7%90%86%20%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86%20%E9%82%A3%E4%BA%9B%E4%BD%A0%E4%B8%8D%E7%9F%A5%E9%81%93%E7%9A%84%E5%8E%9F%E7%90%86%E6%B1%87%E6%80%BB%20%E2%80%94%20(12)/

看完本文章你将了解到 DisplayLink和timer的使用和原理 内存分配和内存管理 自动释放池原理 weak指针原理和释放时机 引用计数原理 / DisplayLinkCADisplayLink是将任务添加到runloop中,loop每次循环便会调用target的selector,使用这个也能监测卡顿问题。首先介绍下API 1234567+ (CADisplayLink *)disp

iOS底层原理 多线程之GCD看我就够了 --(10) | fgyong的技术博客

http://fgyong.cn/2019/12/01/iOS%E5%BA%95%E5%B1%82%E5%8E%9F%E7%90%86%20%E5%A4%9A%E7%BA%BF%E7%A8%8B%E4%B9%8BGCD%20%E7%9C%8B%E6%88%91%E5%B0%B1%E5%A4%9F%E4%BA%86%20--(10)/

RunLoop和线程的关系,以及Thread如何保活和控制生命周期,今天我们再探究下另外的一个线程GCD,揭开蒙娜丽莎的面纱。 GCD 基础知识GCD是什么呢?我们引用百度百科的一段话。 Grand Central Dispatch (GCD)是Apple开发的一个多核编程的较新的解决方法。它主要用于优化应用程序以支持多核处理器以及其他对称多处理系统。它是一个在线程池模式的基础上执行的并行任务。

iOS底层原理 runtime- objc_msgSend拾遗基础篇--(7) | fgyong的技术博客

http://fgyong.cn/2019/12/01/iOS%E5%BA%95%E5%B1%82%E5%8E%9F%E7%90%86%20runtime-%20objc_msgSend%E6%8B%BE%E9%81%97%E5%9F%BA%E7%A1%80%E7%AF%87--(7)/

arm64之后isa是使用联合体使用更少的空间存储更多的数据,以及如何自定义和使用联合体,objc_class->cache_t cache是一个是缓存最近调用class的方法,当缓存剩余空间小余1/4则进行扩容,扩容为原来的两倍,扩容之后,已存储的method_t扩容之后之后被清空。今天我们在了解runtime的消息转发机制。 基础知识OC中的方法调用,其实都是转换为objc_msgSen

MVC、MVP、MVVM、分层设计浅谈 — (13) | fgyong的技术博客

http://fgyong.cn/2019/12/01/iOS%E5%BA%95%E5%B1%82%E5%8E%9F%E7%90%86%20MVC%E3%80%81MVP%E3%80%81MVVM%E3%80%81%E5%88%86%E5%B1%82%E8%AE%BE%E8%AE%A1%E6%B5%85%E8%B0%88%20%E2%80%94%20(13)/

这篇文章主要讲解关于架构的一些思考,通过这篇文章你将了解到 MVC MVC变种 MVP MVVM 分层设计的优缺点 没有最好的架构,只有最适合业务的架构。 MVC苹果版本的MVC是Model和VC和交互,VC和View交互 优点:View和Model可以重复利用,可以独立使用 缺点:Controller的代码过于臃肿 代码: 123456789101112131415161718

iOS图片优化 | fgyong的技术博客

http://fgyong.cn/2019/12/03/iOS%E5%9B%BE%E7%89%87%E4%BC%98%E5%8C%96%20/

基于现在iOS11新生成的图片都是HEIF,该图片使用[UIImage image:name]已不在那么优雅,图片大小为1.8m大小的,读进手机内存,直接飙升了45M,这是我们不想看到的结果,一个页面有多个这样子的图的话,恐怕就是灾难了。 既然原图不能读入,那么如何可以用更少的内存和CPU来解决呢? 这就要先了解该图片的编码了。 HEIC HEIF 带有元数据的HEIF的另一种形式。HEIC文件包

iOS底层原理 多线程之安全锁以及常用的读写锁 --(11) | fgyong的技术博客

http://fgyong.cn/2019/12/01/iOS%E5%BA%95%E5%B1%82%E5%8E%9F%E7%90%86%20%E5%A4%9A%E7%BA%BF%E7%A8%8B%E4%B9%8B%E5%AE%89%E5%85%A8%E9%94%81%E4%BB%A5%E5%8F%8A%E5%B8%B8%E7%94%A8%E7%9A%84%E8%AF%BB%E5%86%99%E9%94%81%20--(11)/

只要提到了多线程就应该想到线程安全,那么怎么做才能做到在多个线程中保证安全呢?这篇文章主要讲解线程安全。 线程安全线程安全是什么呢?摘抄一段百度百科的一段话 线程安全是多线程编程时的计算机程序代码中的一个概念。在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况。 为什么需要线程安全ATM肯定用过,你要是边取钱,边

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.