E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
ios-安全攻防
iOS 底层探索 文章汇总
1、对象底层:结构体+alloc分析
iOS-
底层探索01:alloc流程分析
iOS-
底层探索02:内存对齐分析
iOS-
底层探索03:isa底层结构分析2、对象的本质:isa+isa属性分析+类结构
iOS
differ_iOSER
·
2021-06-25 20:55
CALyer mask
参考地址:https://zsisme.gitbooks.io/
ios-
/content/chapter5/transforms.htmlCALayer有一个属性叫做mask,这个属性本身就是个CALayer
Maple_chang
·
2021-06-25 18:07
28-性能优化之面试题
CPU和GPU优化卡顿优化耗电优化APP启动优化安装包瘦身有关优化更深入详细的介绍,请看
iOS-
底层原理(28)-性能优化详细讲解三列表卡顿的原因可能有哪些?你平时是怎么优化的?
zysmoon
·
2021-06-25 16:22
iOS-
动画“编织年少的星梦”
看到掌上英雄联盟炫酷的动画,一直不知道怎么做的,后来看到他人的一篇文章,发现了这个好东西UIDynamicAnimator,才开启了新世界的大门。传送门:BottleStarAnimationanimate.gif
feedback1991
·
2021-06-25 14:05
iOS-
简单创建MLFinder并学习
1:创建工程的目录结构1.1工程的目录结构工程目录结构.jpg1.2工程思维导图工程类图结构2:原理解释MLFinder的原理就是在viewcontroller返回时候(pop)检测当前的viewcontroller是否还有能力调用指定的willDealloc的方法。总结成一句话:利用runtime发送消息的时候,receiver可以为nil,如[nilmsg]。不会奔溃。3:运行流程运行流程图4
洲洲哥
·
2021-06-25 00:00
iOS-
第三方地址
广告QMUI(QMUI)AlipaySDK(支付宝)GPUImage(图片处理)SDWebImage(加载图片)魔窗(网页跳转)bugtags(bug管理)JSPath(热修复)JSPatch代码转换器FMDB(数据库)CYLTabBarController(标签控制器)CYLTabBarController使用QBPopupMenu(小窗口)AFNetworking(网络请求)TZImagePi
Alan龙马
·
2021-06-24 23:20
iOS-
底层原理 02:alloc & init & new 源码分析
在分析alloc源码之前,先来看看一下3个变量指针和内存地址区别:如图所示分别输出3个对象的内容、指针地址、对象地址,下图是打印结果如图所示结论:通过上图可以看出,可以发现三个对象的指针地址是不一致的;因此我们可以知道,alloc会去申请Person对象的一块内存空间,然后会用一个指针来指向这块申请的内存空间,即p1,而init不会对申请的内存空间做任何的操作,而是指向申请的同一片内存空间。%p-
致青春_bf42
·
2021-06-24 18:17
iOS-isa指向图&类结构(上)
NSObject@end@implementationYPPerson@end@interfaceYPTeacher:YPPerson@end@implementationYPTeacher@end在
iOS
Summit_yp
·
2021-06-24 14:12
iOS-
日历选择基于UIPickerView封装
八月湖水平,涵虚混太清。气蒸云梦泽,波撼岳阳城。欲济无舟楫,端居耻圣明。坐观垂钓者,徒有羡鱼情。---唐代·孟浩然《望洞庭湖赠张丞相》本文是参考OYDatePicker及DatePicker本文算是简写了OYDatePicker,因为项目中既对农历无需求也不是取生日(包含今天和之前),而是对日期的预约(比如三天后)。所以本文只是对其中日期部分跟作者不同UI是Follow的。感谢ohyeahhh的开
long弟弟
·
2021-06-24 10:53
iOS-
彻底解决makePerformSelector:警告问题
有时候我们在写代码过程中,想让系统帮我们去找方法时,需要用到makePerformSelector:,但这个方法会报警告:"performSelectormaycausealeakbecauseitsselectorisunknown"原因:在ARC模式下,运行时需要知道如何处理你正在调用的方法的返回值。这个返回值可以是任意值,如void,int,char,NSString,id等等。ARC通过头
hyeeyh
·
2021-06-24 10:34
iOS-
常用小技巧-01
一、去掉tableviewcell的左边多余的15像素1.可以改变tableviewcell的样式为self.tableView.separatorStyle=UITableViewCellSeparatorStyleNone;然后在自定义的cell下面加上一个UIview在底部,设置UIview的颜色为分割线的样式即可2.同样设置tableviewcell的样式为self.tableView.s
Mr_Bob_
·
2021-06-24 07:49
iOS-
监听多个UITextField的输入事件来限制字数
textfield输入监听.gif定制navigationBarself.navigationBar.tintColor=[GOVCommoncolorForKey:@"mainBlueColor"];self.navigationItem.title=@"实人认证";[self.navigationBarsetTitleTextAttributes:@{NSForegroundColorAttr
fly大梦想家
·
2021-06-24 02:42
堆叠注入
SQL注入之堆叠注入之前一直以为堆叠注入不适合mysql数据库,实战中也没有尝试过堆叠注入,今天看书《web
安全攻防
渗透测试指南》才发现原来mysql也可以。问题原因:1、使用PDO方式查询数据。
草莓养殖户
·
2021-06-23 19:02
iOS-
底层原理 01:源码探索方法
本文旨在介绍如何查找到所属的。有以下三种方法,以alloc为例介绍。1.跟流程alloc打断点方式Xcode左上角位置,如图所示:image.png在符号断点输入allocalloc断点在ViewController中的LGPerson处断点注意:在走到alloc断点之前,需要关闭上面新增的符号断点,原因是因为alloc的调用有很多,如果开启了就不能准确的定位到LGPerson的alloc方法。L
没有昵称的昵称没有
·
2021-06-23 18:36
iOS - 分类中同名方法的调用顺序(转)
iOS-
分类中同名方法的调用顺序https://blog.csdn.net/appleLg/article/details/79931742iOS类方法load和initialize详解https://
大佬的世界我不懂
·
2021-06-23 10:40
iOS-
底层原理 28:GCD 之 底层原理分析
iOS底层原理文章汇总本文是队列创建、同步/异步函数、单例、信号量以及调度组的底层原理分析队列创建在上一篇文章
iOS-
底层原理26:GCD之函数与队列中,我们理解了队列与函数,知道队列的创建时通过GCD
Style_月月
·
2021-06-23 10:55
iOS-
逆向05-选择和指针
《iOS底层原理文章汇总》1.cmp(Compare)比较指令 CMP把一个寄存器的内容和另一个寄存器的内容或立即数进行比较。但不存储结果,只是正确的更改标志。 一般CMP做完判断后会进行跳转,后面通常会跟上B指令!BL标号:跳转到标号处执行B.LT标号:比价结果是小于(lessthan),执行标号,否则不跳转B.LE标号:比较结果是小于等于(lessthanorqeualto),执行标号
一亩三分甜
·
2021-06-23 06:36
iOS-
底层原理28-Block底层原理
《iOS底层原理文章汇总》上一篇文章《
iOS-
底层原理27-锁和Block》介绍了NSLock,NSCondition,NSConditionLock,条件变量和条件锁的底层原理及三种类型Block,本文接着介绍
一亩三分甜
·
2021-06-22 22:41
第一届“百度杯”信息
安全攻防
总决赛 线上选拔赛
类型:MISC题目:findtheflag下载文件是一个cap包里面并没有,我还傻乎乎的找。。。。。。。。。。。其实这个文件损坏了,需要进行修复,这里说一个简单的方法!在windows下用txt打开搜索:whereistheflag发没发现有些奇怪????lf和ga反过来fl和ag然后链接起来是不是flag!!!!然后就是漫长的拼接。。。。得到flag:flag{aha!_you_found_it
1f28dd1475ee
·
2021-06-22 22:25
iOS-
给View添加虚线
Quartz2D绘制-(void)addBorderToLayer2:(UIView*)view{CAShapeLayer*shapeLayer=[CAShapeLayerlayer];[shapeLayersetBounds:view.bounds];[shapeLayersetPosition:CGPointMake(CGRectGetWidth(view.frame)/2,CGRectGet
丶奔波儿灞
·
2021-06-22 20:29
【
iOS-
设计模式】创建型之单例模式
单例模式是一种很常见的设计模式,单例理解起来也很简单,就是不管如何访问始终只有一个实例化对象,定义全局共享的变量,如果对象是空则初始化一个对象,如果对象已经存在则使用已经实例化的对象。单例设计模式的作用是使得这个类的一个对象成为系统中的唯一实例,因此需要用一种唯一的方法去创建这个对象并返回这个对象的地址。下面有一张苹果官网的图片可以参考一下:单例模式定义一个Work类,项目共享同一个工作处理类,定
GSNICE
·
2021-06-22 20:17
iOS-
底层原理31-启动优化
《iOS底层原理文章汇总》本文主要介绍,程序的启动时间,虚拟内存和物理内存之间的映射,二进制重排优化启动时间的原理查看程序的启动时间添加环境变量EditScheme...->Arguments->+->DYLD_PRINT_STATISTICS,查看启动时间
[email protected]
![启动时间@2x.png](https://upload-images.jiansh
一亩三分甜
·
2021-06-22 18:18
iOS-
内存管理6-autorelease
一.转成C++代码我们都知道,在MRC中,当对象调用autorelease后,这个对象会在它所在的自动释放池结束后调用release方法,如下代码:intmain(intargc,constchar*argv[]){@autoreleasepool{MJPerson*person=[[[MJPersonalloc]init]autorelease];}return0;}person指针指向的对象会
Imkata
·
2021-06-22 15:30
iOS-
底层原理21-KVO(下)
iOS-
底层原理21-KVO(下)《iOS底层原理文章汇总》上一篇文章《
iOS-
底层原理20-KVO(上)》介绍到自定义KVO中观察到属性的值发生变化后,怎么通知到自定义的方法中1.自定义KVO,属性值变化后通知到自定义方法中来到
一亩三分甜
·
2021-06-22 13:07
iOS-
底层原理 33:内存管理(一)TaggedPointer/retain/release/dealloc/retainCount 底层分析
iOS底层原理文章汇总本文主要是分析内存管理中的内存管理方案,以及retain、retainCount、release、dealloc的底层源码分析ARC&MRCiOS中的内存管理方案,大致可以分为两类:MRC(手动内存管理)和ARC(自动内存管理)MRC在MRC时代,系统是通过对象的引用计数来判断一个是否销毁,有以下规则对象被创建时引用计数都为1当对象被其他指针引用时,需要手动调用[objcre
Style_月月
·
2021-06-22 13:35
iOS-
底层原理 32:启动优化(二)优化建议
iOS底层原理文章汇总启动启动的过程一般是指从用户点击app图标开始到AppDelegate的didFinishLaunching方法执行完成为止,其中,启动也分为冷启动和热启动冷启动:内存中不包含app相关数据的启动,一般我们可以通过重启手机来实现冷启动热启动:是指杀掉app进程后,数据仍然存在时的启动而我们这里所说的启动优化,一般是指冷启动情况下的,这种情况下的启动主要分为两部分:T1:pre
Style_月月
·
2021-06-22 12:02
iOS-
底层原理 34:界面优化方案
iOS底层原理文章汇总本文主要介绍界面卡顿的原理以及优化界面卡顿通常来说,计算机中的显示过程是下面这样的,通过CPU、GPU、显示器协同工作来将图片显示到屏幕上图像显示过程1、CPU计算好显示内容,提交至GPU2、GPU经过渲染完成后将渲染的结果放入FrameBuffer(帧缓存区)3、随后视频控制器会按照VSync信号逐行读取FrameBuffer的数据4、经过可能的数模转换传递给显示器进行显示
Style_月月
·
2021-06-22 11:39
iOS-
事件传递与响应
事件传递与响应的完整过程事件产生>UIUIApplication事件队列>主窗口通过hitTest方法找到最适合处理的视图>处理在产生一个事件时,系统会将该事件加入到一个由UIApplication管理的事件队列中,UIApplication会从事件队列中取出最前面的事件,将它传递给先发送事件给应用程序的主窗口.主窗口会调用hitTest方法寻找最适合的视图控件,找到后就会调用视图控件的touch
CDLOG
·
2021-06-22 06:52
iOS-
底层原理34-内存管理(下)和RunLoop
《iOS底层原理文章汇总》上一篇文章
iOS-
底层原理33-内存管理(上)介绍了内存管理,本文接着介绍内存管理(下)和RunLoopclassAutoreleasePoolPage:privateAutoreleasePoolPageData1
一亩三分甜
·
2021-06-22 02:24
iOS-
底层原理 31:LLVM编译流程 & Clang插件开发
iOS底层原理文章汇总本文主要是理解LLVM的编译流程以及clang插件的开发LLVMLLVM是架构编译器的框架系统,以C++编写而成,用于优化任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time)。对开发者保持开放,并兼容已有脚本传统编译器设计源码SourceCode+前端Frontend+优化
Style_月月
·
2021-06-21 23:02
iOS-
底层原理36-组件化
《iOS底层原理文章汇总》上一篇文章
iOS-
底层原理35-界面优化介绍了界面优化,本文介绍组件化1.为什么要组件化模块间解耦模块重用提高团队协作开发效率单元测试2.项目是否需要组件化项目较小,模块间交互简单
一亩三分甜
·
2021-06-21 18:55
iOS-
底层原理 09:类 & isa 经典面试题分析
iOS底层原理文章汇总本文的面试题主要涉及isa走位&继承关系&类结构相关的面试题以及针对面试题的分析【面试题】类存在几份?由于类的信息在内存中永远只存在一份,所以类对象只有一份【百度面试题】objc_object与对象的关系所有的对象都是以objc_object为模板继承过来的所有的对象是来自NSObject(OC),但是真正到底层的是一个objc_object(C/C++)的结构体类型【总结】
Style_月月
·
2021-06-21 18:18
iOS-
底层原理 29:锁的原理
iOS底层原理文章汇总本文主要介绍常见的锁,以及synchronized、NSLock、递归锁、条件锁的底层分析锁借鉴一张锁的性能数据对比图,如下所示锁性能对比可以看出,图中锁的性能从高到底依次是:OSSpinLock(自旋锁)->dispatch_semaphone(信号量)->pthread_mutex(互斥锁)->NSLock(互斥锁)->NSCondition(条件锁)->pthread_
Style_月月
·
2021-06-21 17:34
iOS-
逆向04-判断&循环&选择
《iOS底层原理文章汇总》1.cmp(Compare)比较指令 CMP把一个寄存器的内容和另一个寄存器的内容或立即数进行比较。但不存储结果,只是正确的更改标志。 一般CMP做完判断后会进行跳转,后面通常会跟上B指令!BL标号:跳转到标号处执行B.LT标号:比较结果是小于,执行标号,否则不跳转B.LE标号:比较结果是小于等于,执行标号,否则不跳转B.GT标号:比较结果是大于(greatert
一亩三分甜
·
2021-06-21 14:49
iOS-
常见错误:SWIFT_VERSION '5.0' is unsupported, supported versions are: 3.0, 4.0, 4.2.
原因:这个项目是用之前的Swift版本做的,现在用最新版的Xcode打开之后,用的是最新版的Swift5版本进行编译,所以不兼容。IMG_2285.jpg如果这个项目只是演示的话,解决方法:点击主项目-BulidSetting-搜swift-SwiftLanguageVersion改成低版本屏幕快照2019-04-29下午3.44.16.png如果这个项目以后还要长期使用的话,解决方法:1.Mac
Lebus
·
2021-06-21 12:23
iOS-
底层原理09-msgSend消息查找流程&动态方法决议
《iOS底层原理文章汇总》如果在缓存中没查找到方法,之后的流程,CheckMiss和JumpMiss的流程一模一样CheckMiss-->__objc_msgSend_uncached.macroCheckMiss//missifbucket->sel==0.if$0==GETIMPcbzp9,LGetImpMiss.elseif$0==NORMALcbzp9,__objc_msgSend_unc
一亩三分甜
·
2021-06-21 12:44
iOS-
数据持久化
持久化:将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据。持久化数据的方式:文件存储:NSUserDefaults文件:plistWrite写入方式:[datawriteToFile:FileNameatomically:YES];归档(NSKeyedArchiver)数据库:数据库(SQLite、CoreData、第三方类库FMDB)前3种都是覆盖存储。如果想要增加一条数
我是谁重要吗
·
2021-06-21 10:12
隐藏通信隧道技术——《内网
安全攻防
.渗透测试实战指南》学习笔记三
隐藏通信隧道技术一、隐藏通信隧道基础知识1.隐藏通信隧道概述什么是隧道?这里的隧道就是一种绕过端口屏蔽的通信方式。隐藏通信隧道技术常用于在访问受限的网络环境中追踪数据流向和在非受信任的网络中实现安全的数据传输。常用的隧道技术:网络层:IPv6隧道、ICMP隧道、GRE隧道传输层:TCP隧道、UDP隧道、常规的端口转发。应用层:SSH隧道、DNS隧道、HTTP隧道、HTTPS隧道2.判断内网的连通性
风居住街道0120
·
2021-06-21 08:32
iOS-
底层原理10-动态方法决议&消息转发
《iOS底层原理文章汇总》上一篇文章《
iOS-
底层原理09-msgSend消息转发》中提到,如果慢速查找在父类的缓存中没有找到,则传入父类的class,进而重新进行父类的慢速查找流程...一层层递归循环
一亩三分甜
·
2021-06-21 06:17
iOS-
底层原理 11:objc_class 中 cache 原理分析
iOS底层原理文章汇总本文的主要目的是理解cache_t以及sel-imp的缓存原理整体分析在之前的
iOS-
底层原理07:isa与类关联的原理和
iOS-
底层原理08:类&类结构分析中,分析了objc_class
Style_月月
·
2021-06-21 04:28
iOS-
希尔排序
序言以下内容摘自百度百科希尔排序希尔排序(Shell'sSort)是插入排序的一种又称“缩小增量排序”(DiminishingIncrementSort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。在这之前冒泡、选择、插入排序的时间复杂度基本都是O(n²)的,希尔排序算法是突破这个时间复杂度的第一批算法之一。算法思想希尔排序是把记录按下标的一定增量分组,对每组使用直接插入
路飞_Luck
·
2021-06-21 03:47
iOS-
底层原理 18:类的加载(下)
iOS底层原理文章汇总在上一篇文章
iOS-
底层原理17:类的加载(上)中,理解了类是如何从Mach-O加载到内存中,这次我们来解释下分类是如何加载到类中的,以及分类和类搭配使用的情况分类的本质前提:在main
Style_月月
·
2021-06-21 03:11
iOS-
底层原理20-KVO(上)
《iOS底层原理文章汇总》1.观察者中的context上下文参数可以防止重名(多个对象观察的同名属性区分),性能,代码可读性,安全2.观察者在dealloc方法中要移除,若不移除,程序将会奔溃。[self.studentaddObserver:selfforKeyPath:@"name"options:NSKeyValueObservingOptionNewcontext:NULL];-(void
一亩三分甜
·
2021-06-21 03:29
iOS-
底层原理39-离屏渲染
《iOS底层原理文章汇总》1.光栅扫描显示系统组成帧缓冲区--->视频控制器--->显示器集成显卡和独立显卡,独立显卡后有帧缓冲区,CPU处理图片生成纹理后,通过系统总线传输到显示处理器,显示处理器处理数据后放到帧缓冲区,由帧缓冲区渲染到显示器2.屏幕成像和卡顿问题I.屏幕撕裂逐行逐行进行扫描,扫描到一半的时候帧缓冲区里面的数据发生了更新变化,上半部分是上一帧数据的内容,下半部分是下一帧数据的内容
一亩三分甜
·
2021-06-21 00:16
iOS-
底层原理02-isa和类的结构分析
《iOS底层原理文章汇总》[NSObjectalloc]方法为什么没有走源码???0.gif如上图发现并没有走alloc的源码,通过汇编调试(Debug->DebugWorkflow->AlwaysShowDisassembly)发现调用了objc_alloc方法
[email protected]
在objc_alloc中断点,发现[NSObjectalloc]中调用了//Calls[
一亩三分甜
·
2021-06-20 21:20
iOS-
真机调试
前言:来到这里,相信大家在网上搜了不少关于iOS真机调试配置的文章,所以从登陆开发者账号,到生成证书,配置文件,再到真机调试的流程我这里不再赘述。这里只讲实际开发中遇到的真机调试配置失败的问题。1.从小组组长那里获取由他导出的(一般开发者账号在他或者项目经理手里)调试证书,以及对应的p12文件,和mobileprovision(描述)文件。2.分别双击这三个文件进行安装。3.配置xcode:选择“
wangjianjun0730
·
2021-06-20 20:23
iOS-
底层原理08-msgSend(cache_t)
《iOS底层原理文章汇总》运行时感受,通过clang底层编译编译前的代码#import@interfaceDCPerson:NSObject-(void)sayNB;-(void)sayHello;@end@implementationDCPerson-(void)sayNB{NSLog(@"%s",__func__);}-(void)sayHello{NSLog(@"%s",__func__);
一亩三分甜
·
2021-06-20 18:59
iOS-
逆向07-密码学
《iOS底层原理文章汇总》1.RSA加密I.密码学发展A.离散对数问题image3为质数17的原根,若质数17很大,则想要破解会很难,只有不断的试错B.欧拉函数图片.png关于互质关系如果两个正整数,除了1以外,没有其他公因数,我们就称这两个数是互质关系(coprime)。注意:两个相等的数之间不构成互质关系欧拉函数特点一、当n是质数的时候,φ(n)=n-1。二、如果n可以分解成两个互质的整数之积
一亩三分甜
·
2021-06-20 17:59
iOS-
底层原理 03:objc4-781 源码编译 & 调试
iOS底层原理文章汇总本文主要是通过将objc4-781的源码编译成功,然后在源码中进行调试,便于跟踪方法的底层实现流程准备工作环境版本&最新objc源码macOS10.15Xcode11.4objc4-781依赖文件下载需要下载以下依赖文件image其中除了其中launchd-106.10需要在MacOSX10.4.4下载,其他的均可以在最新的的版本macOS10.15中检索到源码编译源码编译就
Style_月月
·
2021-06-20 17:51
iOS-
底层原理 25:多线程原理
iOS底层原理文章汇总本文的目的在于了解进程、线程、多线程、线程池等的基本概念及原理线程和进程线程和进程的定义线程线程时进程的基本执行单元,一个进程的所有任务都在线程中执行进程要想执行任务,必须的有线程,进程至少要有一条线程程序启动会默认开启一条线程,这条线程被称为主线程或者UI线程进程进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用的且受保护的内存空间内通过“活
Style_月月
·
2021-06-20 17:17
上一页
17
18
19
20
21
22
23
24
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他