美文网首页
ios 基础知识整理(一)

ios 基础知识整理(一)

作者: 90后的晨仔 | 来源:发表于2020-09-11 09:58 被阅读0次

一、Swift 和OC 如何相互调用?

1.Swift 调用 OC代码
  • 需要创建一个 Target-BriBridging-Header.h 的桥文件,在乔文件导入需要调用的OC代码头文件即可
2.OC 调用 Swift代码
  • 直接导入 Target-Swift.h文件即可, Swift如果需要被OC调用,需要使用@objc 对方法或者属性进行修饰

二、类(class) 和 结构体(struct) 有什么区别?

1.Class 是引用类型(指针类型)

引用类型只会使用引用对象的一个"指向"; 赋值给var、let或者给函数传参,是将内存地址拷贝一份,类似于制作一个文件的替身(快捷方式、链接),指向的是同一个文件。属于浅拷贝(shallow copy)。 比如Class,是在堆空间上存储和操作的。

2.Struct 是值类。

值类型在传递和赋值时将进行复制; 赋值给var、let或者给函数传参,是直接将所有内容拷贝一份,类似于对文件进行copy、paste操作,产生了全新的文件副本。属于深拷贝(deep copy)。比如结构体,枚举,是在栈空间上存储和操作的。

三、类对象与元类对象有什么区别和联系?

1.实例对象通过"isa"指针找到类对象,类对象中存储方法列表等信息。类对象通过“isa”指针可以找到元类对象,从而可以访问类对象的类方法等一些信息。类对象与元类对象都是objc_class数据结构,都是继承于objc_object,所以才有isa指针。所以才有上述所说的那些操作。
2.元类的isa指针都是指向root Class(根元类对象),根元素类对象指向根类对象。如果根类中找不到方法就会直接去根类对象去查找相同的实例方法。

四、 调用的类方法没有实现,但是实例方法有实现,会不会崩溃?

不会,因为通过isa指针查找的顺序,如果根元类对象中找不到类对象的方法列列表的话就会通过“isa”指针去根类对象查找同名的实例方法与实现。然后产生实际的调用。

相关文章

  • iOS动画基础准备

    做开发这么长时间,由于是中途转的iOS ,有许多基础知识掌握的不牢靠,所以最近决定整理整理基础知识,补补之前欠...

  • iOS基础知识整理(一)

    链接:https://www.zhihu.com/question/19604641/answer/5630660...

  • ios 基础知识整理(一)

    一、Swift 和OC 如何相互调用? 1.Swift 调用 OC代码 需要创建一个 Target-BriBrid...

  • iOS基础知识整理

    本文从以下几点整理iOS基础的相关知识 一、应用的生命周期二、ViewController的生命周期三、修饰符的使...

  • macOS 开发笔记

    做了几年iOS开发,熟悉了iOS的控件的使用,闲来无事学习整理一下Mac开发基础知识,也好练习一下自己的语言逻辑。...

  • iOS开发小记

    这篇文章主要内容是整理了部分iOS开发基础知识和收集了一些iOS开发中的小技巧。由于平时自己没有养成做笔记的习惯,...

  • ios基础篇内存管理

    前言 最近有时间把ios的基础知识整理一下,浅谈一下对ios内存管理机制的理解,以前也只是会用,知其然但不知其所以...

  • iOS 底层基础知识整理

    我所理解的内存管理,介绍一下内存管理。答:采用引用计数管理对象内存,当持有该对象,则引用计数加1,不需要了引用计数...

  • ios 基础知识整理(四)

    1、内存管理语义 assign 设置方法只会执行针对“纯量类型”(基本数据类型)的简单赋值操作。 strong 此...

  • ios 基础知识整理(二)

    一、分类(Category) 1.你都用分类在项目中做了哪些事情? 声明私有方法。 分解体积庞大的类文件。 把Fr...

网友评论

      本文标题:ios 基础知识整理(一)

      本文链接:https://www.haomeiwen.com/subject/bwjvektx.html