IPhone作为目前为止最优秀的移动互联网终端,在国内外收到热烈的追捧。其成功之处不仅在于抓住了消费电子的命门,超炫的设计,简单的操作,良好的用户体验,还在于其构建了一套软件服务体系(AppStore)整合了全部的软硬件资源,更好的为用户服务。但是其系统封闭性,再加上一些技术约束,使
转载 2023-12-11 16:42:56
12阅读
IOS,Andriod,WP8是目前移动终端三大平台,后台和消息推送是最常用的任务,本文分析了三大系统的在这方面的机制,文章内容既有自己的概括总结,也有借鉴了网上的分析。一、IOS(I)后台机制 IOS提供的伪后台支持后台音乐播放,GPS定位,网络语音通话,以及任务完成。也就是说仅只有这四项工作可以真正在后台运行。所谓任务完成是指在程序退出的时候还有工作没处理完,比如保存进度存档,那么系统允许程
内存管理是任何编程语言中最重要的过程之一。它是在需要时分配对象的内存并在不再需要时取消分配的过程。管理对象内存是一个性能问题; 如果应用程序不释放不需要的对象,则应用程序会因内存占用增加并且性能受损。Objective-C内存管理技术大致可分为两类 -“手动保留或释放”或MRR“自动参考计数”或ARC1. “手动保留释放”或MRR在MRR中,通过跟踪自己的对象来明确管理内存。这是使用一个称为引用计
Objective-C 的本质Objective-C —> C/C++ —> 汇编语言 —> 机器语言 Objective-C 是基于 C/C++ 的数据结构实现的。 将 Objective-C 代码转化为 C/C++代码:xcrun -sdk iphoneos clang -rewrite-objc -arch arm64 main.m -o main.cpp模拟器(i386)
转载 2024-07-02 07:27:21
58阅读
iOS底层原理探究- NSObject 所占内存面向对象的Objective-C我们平时写的 OC 代码底层实现为 C/C++ 代码,因为 Runtime 让 OC 具备了面向对象的特点,而后底层的 C/C++ 会转换成底层的 汇编 代码,最终被被解析成计算机能识别的 机器语言 。而 OC 中的类,正是正是基于 C/C++ 的结构体实现的。我们可以通过 clang 命令将我们平时所写的 OC 代码
最近一直在研究runtime运行时机制的问题,我想可能也有很多人不太清楚这个问题吧?在这里跟大家沟通分享下我对与runtime机制的理解。   要理解runtime,首先我们要了解类和对象的内部结构,下面将首先介绍下OC中类与对象的结构层次。   一、首先,从 runtime.h头文件中找到对 class 与 object 的定义 /// An opaque t
转载 2023-09-04 10:56:08
41阅读
学习iOS开发已经两年了,也做过一些iOS开发的小项目,对iOS开发多少有点自己的见解,接下来我来谈谈我对iOS中runtime机制的理解(由于本次是我第一次写博客,若书写中有错误,欢迎大家指出)。进入主题,什么是runtime机制,其实就是运行时机制:对象的生成和消息的发送都是动态运行时生成的(运行时就是command+R,消息可以理解为函数的调用,如果你学过一门编程语言,那你应该知道函数的调用
runtime:运行时机制1.1runtime是一套比较底层的纯C语言的API,runtime就是一个库,一个C语言库,包含了许多底层的C语言API 1.2平时我们编写的OC代码,在程序运行过程中,其实最终都是转成了runtime的C语言代码,runtime算是OC的幕后工作者,是整个OC的底层 1.3举个例子 oc中的代码:[Student alloc] init]经过runtime后,
转载 2023-08-29 20:43:28
70阅读
首先,第一个问题,  1》runtime实现的机制是什么,怎么用,一般用于干嘛?  runtime是一套比较底层的纯C语言API, 属于1个C语言库, 包含了很多底层的C语言API,基本是由C和汇编写的。Objc 从三种不同的层级上与 Runtime 系统进行交互,分别是通过 Objective-C 源代码,通过 Foundation 框架的NSObject类定义的方法,通
1. 概述OC 是一个全动态语言,OC 的一切都是基于 Runtime 实现的只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法`2. 运行时机制运行时机制是用 C++ 开发的,是一套苹果开源的框架 OC 是基于运行时开发的语言3. 应用场景运行时动态获取类的属性主要应用:字典转模型框架 MJExtension,JSONModel利用 关联对象 为分类添加属性利用 交换方法 拦截系
转载 2024-06-23 09:05:15
56阅读
  最近一直在研究runtime运行时机制的问题,我想可能也有很多人不太清楚这个问题吧?在这里跟大家沟通分享下我对与runtime机制的理解。  要理解runtime,首先我们要了解类和对象的内部结构,下面将首先介绍下OC中类与对象的结构层次。 runtime.h头文件中找到对 class 与 object 的定义/// An opaque type that rep
1、运行机制的区别  Android:沙盒运行机制,采用真后台运行,将所有的应用都保存在RAM中,按home键,程序被挂在了后台,实际未退出,因程序在后台运行,所以可以收到推送消息,导致内存越用越低,越用越卡  IOS:虚拟机运行机制,采用伪后台运行,按home键,程序进入到后台会自动进入到休眠状态,home键调出多任务管理器,所有的应用都处于停止状态,iphone默认将应用的最后的运行记录在RA
Pod概述:概念、原理深度解读1.1  带你梳理Pod概念、原理什么是Pod?Pod是Kubernetes中的最小调度单元,一个Pod封装一个容器(也可以封装多个容器),Pod里的容器共享存储、网络等。也就是说,可以把整个pod看作虚拟机,然后每个容器相当于运行在虚拟机的进程。同一个pod里的所有容器都被统一安排和调度。白话解释: 可以把pod看成是一个“豌豆荚”,里面有很多“豆子”(容
文章目录iOS开发---图解KVC什么是KVC?KVC方法全览KVC基础操作KVC取值取值方法基于getter取值底层实现KVC设值赋值方法基于setter赋值底层实现KVC批量操作KVC集合属性操作集合操作符数组操作符嵌套操作符KVC与容器类KVC与有序容器(NSMutableArray)取值方法NSMutableArray取值底层实现KVC与无序容器(NSMutableSet)取值方法NSM
转载 2023-07-13 13:14:22
104阅读
一个成熟的计算机语言必然有丰富的体系,复杂的容错机制,处理逻辑以及判断逻辑。但这些复杂的逻辑都是围绕一个主线丰富和展开的,所以在学习计算机语言的时候,先掌握核心,然后了解其原理,明白程序语
转载 2016-06-20 08:58:00
81阅读
本文转自最近一直在研究runtime运行时机制的问题,我想可能也有很多人不太清楚这个问题吧?在这里跟大家沟通分享下我对与runtime机制的理解。  要理解runtime,首先我们要了解类和对象的内部结构,下面将首先介绍下OC中类与对象的结构层次。  一、首先,从 runtime.h头文件中找到对 class 与 object 的定义/// An opaque typ
基本概念@property用于定义属性,将会自动生成getter和setter方法,并生成带 “_” 的成员变量,同时属性提供了一些可能会使用的特性来进行声明,包括assign(vs copy),weak,strong,atomic(vs nonatomic),readwrite,readonly等 @property本质:@property = ivar(实例变量) + getter/sette
转载 2024-07-04 20:00:42
88阅读
远程推送解决了当APP处于终止状态,client与sever断开时的通信困境,APNS是苹果所提供的一套服务。远程推送要求设备必须保持联网状态,若设备处于断网状态,这APNS将为其保留最后一条推送消息,若设备长时间处于断网状态,则将不再为其保留推送消息。一、APNS的推送机制推送机制如下图所示:Provider就是我们自己程序的后台服务器,APNS是Apple Push Notification
转载 2023-06-25 23:19:18
108阅读
一、中介者模式中介者,顾名思义,即一个处理各种交互集中化操作的角色。面向对象的设计思想鼓励把行为分散到不同的对象中,但是,这种行为的分散可能在一定程度上增大对象之间的关联,增大了系统的耦合度,为后期的维护和扩展带来不便。中介者模式定义了一个集中的场所,对象间的交互可以在一个中介者对象中集中处理,其他对象不必彼此交互,这样就减少了对象之间的关联。定义:用一个对象来封装一系列对象的交互方式。中介者使得
转载 2024-01-17 10:22:04
72阅读
1.格式@property (参数1,参数2,...) 类型 名字; eg: @property(nonatomic,retain) UIWindow *window; 其中参数主要分为三类: • 读写属性: (readwrite/readonly/setter = /getter = ) • setter语意:(assign/retain/copy) • 原⼦子性: (atomicit
转载 2024-05-21 06:38:59
46阅读
  • 1
  • 2
  • 3
  • 4
  • 5