最近开始学习ios编程,因为以前学习过c/c++等编程语言,所以初略过了一遍object c的语法基础。之后开始学习ios的控件,这里主要整理一下关于ios控件的api,加深自己的印象。学习书籍是ios编程第四版。首先是视图与视图层次结构,如下图。第一次使用的starUML建模软件,因为没接触过这个东西,故可能画法有错误,不过主要也就是表达一下视图层次结构的概念。UIWindow作为iOS程序的窗
转载
2024-06-08 23:36:17
68阅读
1. Class 和 Object 的定义 /// An opaque type that represents an Objective-C class.
typedefstructobjc_class *Class;
/// Represents an instance of a class.
structobjc_objec
转载
2023-06-01 17:47:31
78阅读
1.在iOS中,类的结构是什么样的呢?main.m中首先有这样一段代码(objc源码中):我们cd到当前路径后输入命令行:clang -rewrite-objc main.m -o main.cpp获得c++文件,打开文件,我们拉到最下面的代码,就是oc经过编译后的代码:在上图中,pClass使用Class类型接收,说明pClass是Class类型的!我们找到Class的定义:typedef st
转载
2023-05-26 21:07:08
68阅读
类和结构体对比Swift 中类和结构体有很多共同点。共同处在于:定义属性用于存储值定义方法用于提供功能定义下标操作使得可以通过下标语法来访问实例所包含的值定义构造器用于生成初始化值通过扩展以增加默认实现的功能实现协议已提供某种标准功能与结构体对比类还有如下的附加功能:类可以继承类允许在运行时检查和解释一个类实例 的类型类的析构器允许个类实例释放任何其所分配的资源引用计数允许对一个类的多次
转载
2023-11-14 06:14:49
44阅读
一、Object(objc实例对象),Class(类),Metaclass(元类),Rootclass(根类),Rootclass‘s metaclass(根元类)要理解iOS中的isa指针,我们就离不开Objective-C中类的几种数据结构;在Objective-C的类型结构中,Object(实例),Class(类),Metaclass(元类),Rootclass(根类),Rootclass‘
转载
2023-08-27 23:15:50
155阅读
前两天,公司一个新来的实习生问我一个问题,什么是类,这个问题看似很好笑,但是要答全也确实不那么简单!!!回去翻看资料,查看以往的笔记,那么就说说我自己对类的本质看法!在OOP的设计的模式下,我们说万物皆对象,OC是一种面向对象的弱语法,但其实也是所有用到的东西也都是对象,包括成员变量!那么问题来了,对象从哪里来,这就要说到类!类的本质:类的本质其实也是一个对象,叫类对象。那么我们就来看看类和对象到
转载
2023-08-21 14:06:00
46阅读
类和结构体对比Swift 中类和结构体有很多共同点。共同处在于:定义属性用于存储值定义方法用于提供功能定义下标操作使得可以通过下标语法来访问实例所包含的值定义构造器用于生成初始化值通过扩展以增加默认实现的功能实现协议以提供某种标准功能与结构体相比,类还有如下的附加功能:继承允许一个类继承另一个类的特征类型转换允许在运行时检查和解释一个类实例的类型析构器允许一个类实例释放任何其所被分配的资源引用计数
转载
2023-08-21 11:18:27
43阅读
目录版本结构体和类对比类型定义 & 创建实例结构体是值类型类是引用类型恒等运算符指针 版本Xcode 11.3.1 Swift 5.1.3Swift 中结构体和类的功能很相近,本文中所讨论的大部分功能都可以用在结构体或者类上,因此将两者放在同一篇章里。结构体和类对比Swift 中结构体和类有很多共同点。两者都可以:定义属性用于存储值定义方法用于提供功能定义下标操作用于通过下标语法访问它们
转载
2023-08-21 09:34:03
67阅读
实例对象(id)实例对象是我们对类对象alloc或者new操作时所创建的,在这个过程中会拷贝实例所属类的成员变量,但并不拷贝类定义的方法。/// Represents an instance of a class.
struct objc_object {
Class _Nonnull isa OBJC_ISA_AVAILABILITY;
};
/// A pointer to an
转载
2023-09-01 18:11:04
43阅读
##区别:1.结构体只能封装属性,类却不仅可以封装属性也可以封装方法,如果及需要封装属性有需要封装方法的话,就只能是类了。 2.结构体变量属于值类型,分配在栈上,而OC对象分配在堆,栈的控件相对于对来说是比较小的,但是存储在栈上的数据访问效率比堆上的数据快很多。 3.如果定义一个结构体,这个结构体有很多的属性,那么这个是有就要选择使用类来处理,在栈中占用太多的空间会降低效率; 3.结构体赋值是值类
转载
2023-05-26 15:23:42
70阅读
我们都知道,内存分配可以分为堆区(Heap)和栈区(Stack)。由于栈区内存是连续的,内存的分配和销毁是通过入栈和出栈操作进行的,速度要高于堆区。堆区存储高级数据类型,在数据初始化时,查找没有使用的内存,销毁时再从内存中清除,所以堆区的数据存储不一定是连续的。
转载
2023-07-14 10:38:32
392阅读
一、类的结构OC 中的代码在底层实现,使用的是 C、C++,所以要研究 OC 中的类结构,可以将 OC 的代码转成 C++的代码即可。首先看一下 NSObject 的结构是什么样子的,创建一个文件并简单的编写如下代码:// CustomFile.m
#import void test() {
[NSObject alloc];
}进入终端,输入指令:clang -rewrite-objc Cus
转载
2023-09-19 02:09:59
108阅读
声明方法的开头为正号(+)的通知编译器表示为类方法class method,类方法属于类对象而不是类的实例对象,通常用于创建新的实例。我们称这种用来创建新对象的类方法为工厂方法 factory method。如果某个方法所实现的是很通用的功能,比如创建一个实例对象或访问一些全局类数据,最好声明为类方法。stringWithFormat:是一个类方法。例如: NSString *str
转载
2023-07-11 11:22:08
52阅读
一、简介类和结构体1、类(Class)类(Class)是面向对象程序设计实现信息封装的基础。类是一种用户定义类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。类是面向对象程序设计中的概念,是面向对象编程的基础。类的实质是一种数据类型,类似于int、char等基本类型,不同的是它是一种复杂的数据类型。因为它的本质是类型,而不是数据,所以不存在于内存中,不能被直接操
转载
2023-06-01 17:41:38
186阅读
# 如何实现iOS结构体和类
## 1. 流程图
```mermaid
flowchart TD
A(了解结构体和类的概念)
B(创建结构体和类)
C(使用结构体和类)
A --> B --> C
```
## 2. 关系图
```mermaid
erDiagram
STRUCT {
int id
string nam
原创
2024-03-28 07:34:30
17阅读
结构体结构体的作用具有相同类型的数据的集合 结构体: 存储不同类型的数据项单一的数据类型无法满足特定的需求,数据类型的集合体:结构体 出现了结构体的定义和使用结构体的定义方式结构体是一种 自定义数据类型 struct用来定义一个类型 结构体的定义方式:struct 结构体名字
{
//成员变量
}; 定义结构体后再定义变量//例1:
struct
转载
2024-06-01 13:06:15
27阅读
1.准备工作我们要研究类,所以首先肯定要需要定义几个类,这里我们就定义两个类,并且他们之间最好有继承关系,方便后续探索。继承自NSObject的YSHPerson类 继承自YSHPerson的YSHStudent类 在main.m文件中定义两个对象 2.元类什么是元类?以类作为其实例的类。元类的定义和创建都是由编译器完成的。对象的isa指向类,而类其实也是一个对
转载
2023-11-10 23:27:31
135阅读
//联系人:石虎 : 1224614774昵称:嗡嘛呢叭咪哄 objc_class结构体一、类在OC中是objc_class的结构体指针 typedef struct objc_class *Class;在objc/runtime.h中objc_class结构体的定义如下:struct objc_class {
;
#if !__OBJC2
目录一、结构性设计模式简介二、代理模式
2.1 代理模式介绍2.2 静态代理2.3 JDK代理2.4 CGLIB代理2.5 三种代理的对比2.5.1 JDK代理和CGLIB代理2.5.2 动态代理和静态代理三、适配器模式
3.1 适配器模式介绍3.2 类适配器模式3.3 对象适配器模式3.4 接口适配器模式四、装饰者模式
4.1 装饰者模式介绍4.2 静态代理和装饰者的区别五、桥接模式
5.1 桥
转载
2023-07-17 11:29:42
45阅读
1,定义和使用非常相似,例子如下:
public struct Student
{
string Name;
int Age;
}
public class Question
{
int Number;
string Content;
}
使用:
Student s=new Studen