网站首页 站内搜索

搜索结果

查询Tags标签: Objective-C,共有 148条记录
  • iOS-图形高级处理(二、图片的编码解码)

    前言图片的编码:在当前APP的开发中,图片是经常会使用到的,关于图片有很多种格式,例如JPEG,PNG等。其实这些各种各样的图片格式都对应了位图(bitmap)经过不同算法编码(压缩)后的图片。(编码这里就不过多介绍了)图片的解码:app从磁盘中读入编码后的图片,需要经过解码…

    2020/7/4 23:56:14 人评论 次浏览
  • iOS - 图形高级处理 (一、图片显示相关理论)

    前言: app性能的优化一直是一个需要认真对待的问题,特别是项目越复杂这个需要优化的点就更加重要,谈到性能优化就绕不开图片图形的处理。 一、图片从磁盘中读入到显示到屏幕全过程 1、图片的加载过程:使用 +imageWithContentsOfFile: 方法从磁盘中加载一张图片或 -[UI…

    2020/7/4 23:56:13 人评论 次浏览
  • OC底层-Block本质(六、block内修改变量的值)

    如何修改 分析从代码入手: int main(int argc, const char * argv[]) {@autoreleasepool {int age = 10;Block block = ^ {age = 20; // 无法修改,会报错NSLog(@"%d",age);};block();}return 0; }复制代码默认情况下block不能修改外部的局部变量。通过之前对源…

    2020/7/2 23:26:55 人评论 次浏览
  • 面试遇到Runtime的第三天-消息转发

    如果阅读过前面的两篇文章,我相信你一定对runtime有了一些自己的理解。本文就要切入正题,所谓Objective-C是一个动态的语言,他的主要核心就是消息转发和传递。所以我们了解runtime,也一定要明白他的核心(消息转发)的实现原理。 消息 对于消息这个概念呢,我们可以简…

    2020/7/2 23:26:51 人评论 次浏览
  • OC底层-Block本质(五、捕获的变量何时销毁)

    疑问 block一般使用过程中都是对对象变量的捕获,那么对象变量的捕获同基本数据类型变量相同吗? 当在block中访问的为对象类型时,对象什么时候会销毁? typedef void (^Block)(void);int main(int argc, const char * argv[]) {@autoreleasepool {Block block;{Person *…

    2020/7/1 23:26:21 人评论 次浏览
  • iOS-内存管理-理论实践1

    前言 iOS开发中,内存管理是不可避免的。鉴于当下MRC已经远去多时,本篇学习笔记主要针对ARC下的内存管理进行实践。 内存理论篇:iOS-内存管理-理论篇内存理论实践篇:iOS-内存管理-理论实践1(本文) iOS-内存管理-理论实践2(待完成)实践哪些对象需要我们进行内存管理呢?…

    2020/6/29 23:27:25 人评论 次浏览
  • OC底层-Block本质(二、变量捕获)

    前言 为了保证block内部能够正常访问外部的变量,block有一个变量捕获机制。 局部变量 auto 变量(默认的auto) 在上一篇代码中我们已经了解过block对age变量的捕获。 auto自动变量,离开作用域就销毁,局部变量前面自动添加auto关键字。自动变量会捕获到block内部,也就…

    2020/6/29 23:27:20 人评论 次浏览
  • OC底层-Class的本质

    Class的本质 我们知道不管是类对象还是元类对象,类型都是Class,class和mete-class的底层都是objc_class结构体的指针,内存中就是结构体,本章来探寻Class的本质。Class objectClass = [NSObject class];Class objectMetaClass = object_getClass([NSObject class]);复制…

    2020/6/29 23:27:12 人评论 次浏览
  • OC底层-Block本质(一、原理)

    问题 block的原理是怎样的?本质是什么? 复制代码认识 block本质上是一个oc对象,内部有一个isa指针,是封装了函数调用以及函数调用环境的OC对象 探索 ///简单的block代码 int main(int argc, const char * argv[]) {@autoreleasepool {int age = 10;void(^block)(int ,…

    2020/6/29 23:27:10 人评论 次浏览
  • OC底层-KVO本质

    问题1、iOS用什么方式实现对一个对象的KVO?(KVO的本质是什么?)2、如何手动触发KVO 复制代码定义 KVO: 全称 Key-Value Observing,俗称“键值监听”,可以用于监听某个对象属性值的改变。 简单的写一个KVO代码: - (void)viewDidLoad {[super viewDidLoad];Person *p1 …

    2020/6/29 23:27:09 人评论 次浏览
  • iOS 动画 - 窗景篇(一)

    iOS 有一种动画,使用虽然简单,但能实现很多有趣的效果,那就是 mask 动画。 如果你还不了解 mask 动画,看完本系列文章后,你可以学会这种动画。如果你已经使用过了,本文也能帮你梳理一下,让你使用起来更方便。 本系列文章共3篇,作为系列的开篇,我们首先要搞清楚一…

    2020/6/29 14:26:58 人评论 次浏览
  • iOS-内存管理-理论篇

    前言 关于iOS的内存管理网上已有很多前辈大神提供了很多学习笔记和博客,非常感谢能够从他们那里学到东西,此篇只是根据自身的总结学习。 内存基本知识1.内存的基本划分:1.栈区(heap):由系统去管理。地址从高到低分配。先进后出。会存一些局部变量,函数跳转跳转时现场…

    2020/6/28 23:27:11 人评论 次浏览
  • iOS 动画 - 窗景篇(三·完结)

    这篇文章是系列文章的第三篇。 看过上一篇文章的朋友,已经知道标题中的“景”指代 view,“窗”指代 view.mask,窗景篇就是在梳理 mask 及 mask 动画。如果你还不熟悉 iOS 的 mask,建议先看一下第一篇。 前两篇我们介绍了 mask、mask 动画的一些用法。 这一篇作为收尾,…

    2020/6/28 14:27:32 人评论 次浏览
  • YYDispatchQueuePool源码笔记

    工具作者在实际开发中,由于开了很多线程去做异步绘制、下载等工作,而且有的线程可能因为资源锁等待的原因,可能导致开更多的线程。当线程过多时,线程占用了过多资源,可能导致主线程受影响,出现卡顿问题 而iOS框架中有最大并发数概念的目测只有NSOpeartionQueue了,但…

    2020/6/24 23:28:00 人评论 次浏览
  • 面试遇到Runtime的第二天-isa和meta-Class

    本文主要写一下,runtime中关于类,元类的结构和他们之间的关系。其实应该在上一篇文章面试遇到Runtime的第一天中先写本文的内容,但是写那天刚好在整理category的知识点,所以趁热打铁的就写在了上一篇文章。如果在阅读时遇到有比较难理解的点,不妨可以先阅读本文,再去…

    2020/6/23 23:26:55 人评论 次浏览
扫一扫关注最新编程教程