当前位置: 首页 > news >正文

互联网情况下做企业网站的有点口碑营销有哪些方式

互联网情况下做企业网站的有点,口碑营销有哪些方式,网站开发设计软件,西安企业网站开发哪家好1.ARC是什么 我们知道,在C语言中,创建对象时必须手动分配和释放适量的内存。然而,在 Swift 中,当不再需要类实例时,ARC 会自动释放这些实例的内存。 Swift 使用 ARC 来跟踪和管理应用程序的内存,其主要是由…

1.ARC是什么

      我们知道,在C语言中,创建对象时必须手动分配和释放适量的内存。然而,在 Swift 中,当不再需要类实例时,ARC 会自动释放这些实例的内存

      Swift 使用 ARC 来跟踪和管理应用程序的内存,其主要是由Objective-C语言提供的。ARC是一种自动化的内存管理机制,它通过在编译时插入内存管理代码来自动管理对象的引用计数。ARC机制可以让开发者不用手动管理对象的引用计数,从而减少了内存泄漏和野指针等问题的发生。

      总的来说:

  1. Swift中每个对象都有一个【被引用计数】;
  2. 当对象A被引用时(实例),对象A的被引用计数会 + 1;
  3. 当对象A被放弃引用时,对象A的被引用计数会 - 1;
  4. 只有当对象A的被引用计数为 0 的时候,ARC才会释放对象A的内存。

2.强引用stong

      为了防止实例在仍然需要时被释放,属性、常量或变量在分配实例时会建立对实例的强引用。


//简单类Person
class Person{var name0 : Stringvar name1 : Stringinit(name0: String, name1: String) {self.name0 = name0self.name1 = name1}deinit {print("Person is deallocated")}
}let person : Person? = Person(name0: "whj", name1: "whj1")var man = person
var women = personman = nil
women = nil

        以上设置了一个简单类Person,它有两个属性:init()deinit()deinit()方法仅在释放时才会被调用。类定义之后, Person类的实例已初始化。还有另外两个变量(man、women)指向与第一个变量(person)相同的实例。

        当我们将man和women设置为nil时,发现deinit()并没有发挥作用,说明该实例并没有被释放内存,这是因为三个变量(person、man、women)都对该实例有着很强的引用,当三个变量均引用该实例的时候, 该实例的ARC的计数为3。因此,即使将两个变量设置为 nil,引用计数仍然为 1。除非引用计数不为零,否则实例仍然存在。

循环引用(类之间强引用引起)

        循环引用可以简单的理解为A引用了B,B也引用了A,因为两者相互持有,所以ARC无法释放两者,这在应用程序中是致命的。

//简单类Person
class Person{var name0 : Stringvar name1 : Stringvar band : Band?init(name0: String, name1: String) {self.name0 = name0self.name1 = name1}deinit {print("Person is deallocated")}
}class Band{var bandName : Stringvar person : Person?init(bandName: String) {self.bandName = bandName}deinit {print("\(bandName) is deallocated.")}}var person : Person? = Person(name0: "whj", name1: "whj1")
var band : Band? = Band(bandName: "ruishi")person?.band = band
band?.person = personperson = nil
band = nil

        在上面的示例中,有两个简单的类,称为PersonBand。每个类都有一个可选属性,该属性具有另一个类的类型。正如您在代码中看到的,这些属性在初始化后被分配给彼此的实例。目前两者的关系可以如下图描述:

        当我们设置person和band为nil ,关系如下:

        由于变量被设置为nil,变量和实例之间的强引用消失了。然而,实例仍然存在,因为“ Band”属性和“Person”属性对每个实例都有很强的引用。只要存在强引用,引用计数就不会为零。因此,即使变量为零,实例也不会被释放。这称为循环引用。这会导致ARC 无法释放其内存,造成内存泄漏。

        Block 和 代理 、NSTimer均有可能造成循环引用。

3.弱引用weak

        解决循环引用的方法之一就是使用弱引用weak。弱引用weak对实例没有强引用。换句话说,它不会增加实例的强引用计数。因此,如果使用weak关键字,它并不真正参与实例的生命周期管理。

        将代码改成:

//简单类Person
class Person{var name0 : Stringvar name1 : Stringweak var band : Band?init(name0: String, name1: String) {self.name0 = name0self.name1 = name1}deinit {print("Person is deallocated")}
}class Band{var bandName : Stringvar person : Person?init(bandName: String) {self.bandName = bandName}deinit {print("\(bandName) is deallocated.")}}var person : Person? = Person(name0: "whj", name1: "whj1")
var band : Band? = Band(bandName: "ruishi")person?.band = band
band?.person = personperson = nil
band = nil

4.无主引用Unowned

        解决循环引用的另一种方法就是使用无主引用Unowned。与弱引用相同,无主引用不会增加引用计数。那么,无主引用Unowned和弱引用weak有什么区别呢?区别在于:

weak是可选类型,可以设置为nil,而Unowned是值类型,其必须持有具体的值。

5.Autoreleasepool 自动释放池

在Swift中,自动释放池(Autorelease Pool)是一种用于管理内存释放的机制,它可以减少内存峰值并提高内存使用效率。自动释放池允许您暂时保留对象,直到您离开当前代码块,然后自动释放它们。

在Swift中,您可以使用 autoreleasepool 块来创建自动释放池。在 autoreleasepool 块中创建的对象都会被加入到自动释放池中。当程序离开该块时,自动释放池将被清空,并释放其中的所有对象。

func myFunc() {autoreleasepool {// 创建一些临时对象let obj1 = MyClass()let obj2 = MyClass()// 在此使用 obj1 和 obj2} // 自动释放池在这里被清空
}

        当代码中临时对象较多的时,或者代码执行时间长,那么使用autoreleasepool可以对项目的内存利用效率产生积极的影响

参考:

https://kentakodashima.medium.com/ios-arc-memory-management-in-ios-30aae3da92cf

iOS内存管理_ios 内存管理-CSDN博客


文章转载自:
http://dinncoruble.stkw.cn
http://dinncounentangled.stkw.cn
http://dinnconomadic.stkw.cn
http://dinncoordines.stkw.cn
http://dinncomoluccas.stkw.cn
http://dinncodisharmonious.stkw.cn
http://dinncoplanarian.stkw.cn
http://dinncododgery.stkw.cn
http://dinncorasophore.stkw.cn
http://dinncounimpeachably.stkw.cn
http://dinncoethane.stkw.cn
http://dinncotrackside.stkw.cn
http://dinncoairdent.stkw.cn
http://dinncopenniform.stkw.cn
http://dinncoimpatiently.stkw.cn
http://dinncoaristaeus.stkw.cn
http://dinncotabularize.stkw.cn
http://dinncosuperhigh.stkw.cn
http://dinncoliaise.stkw.cn
http://dinncosetback.stkw.cn
http://dinncoepiphylline.stkw.cn
http://dinncohaemolyse.stkw.cn
http://dinncofeldspathoid.stkw.cn
http://dinncovividness.stkw.cn
http://dinncohydel.stkw.cn
http://dinncounderstrength.stkw.cn
http://dinncocebuan.stkw.cn
http://dinncochilloplasty.stkw.cn
http://dinncozamia.stkw.cn
http://dinncoarmangite.stkw.cn
http://dinncocuppy.stkw.cn
http://dinncofarmland.stkw.cn
http://dinncogeometrical.stkw.cn
http://dinncodebone.stkw.cn
http://dinncocervicovaginal.stkw.cn
http://dinncorefugee.stkw.cn
http://dinncosimultaneity.stkw.cn
http://dinncoguttate.stkw.cn
http://dinncodarkness.stkw.cn
http://dinncosingaradja.stkw.cn
http://dinncoblowout.stkw.cn
http://dinncoarginine.stkw.cn
http://dinncowhelp.stkw.cn
http://dinncoskyport.stkw.cn
http://dinncoformfeed.stkw.cn
http://dinncorhodope.stkw.cn
http://dinncoisocyanine.stkw.cn
http://dinncopastorship.stkw.cn
http://dinncocolotomy.stkw.cn
http://dinncocriminaloid.stkw.cn
http://dinncoammonotelism.stkw.cn
http://dinncothomson.stkw.cn
http://dinncojohanna.stkw.cn
http://dinncoprole.stkw.cn
http://dinncostencil.stkw.cn
http://dinncounmined.stkw.cn
http://dinncoyegg.stkw.cn
http://dinncoici.stkw.cn
http://dinncobidonville.stkw.cn
http://dinncopneumograph.stkw.cn
http://dinncokaryogram.stkw.cn
http://dinncosplodge.stkw.cn
http://dinncorighteousness.stkw.cn
http://dinncorehospitalize.stkw.cn
http://dinncoimperfect.stkw.cn
http://dinncoovolo.stkw.cn
http://dinncocarat.stkw.cn
http://dinncorefrigeratory.stkw.cn
http://dinncorailer.stkw.cn
http://dinncoreupholster.stkw.cn
http://dinncosternum.stkw.cn
http://dinncoshemitic.stkw.cn
http://dinncorootedness.stkw.cn
http://dinncoqbp.stkw.cn
http://dinncospongeable.stkw.cn
http://dinncoarith.stkw.cn
http://dinncoarchimedes.stkw.cn
http://dinncomegalocephalia.stkw.cn
http://dinncovalentinite.stkw.cn
http://dinncochou.stkw.cn
http://dinncoxerantic.stkw.cn
http://dinncoorthopedist.stkw.cn
http://dinncopyrgeometer.stkw.cn
http://dinncolycanthrope.stkw.cn
http://dinncomeromorphic.stkw.cn
http://dinncotaint.stkw.cn
http://dinncoforzando.stkw.cn
http://dinncowellhouse.stkw.cn
http://dinncosarraceniaceous.stkw.cn
http://dinncopolyspermy.stkw.cn
http://dinncofactuality.stkw.cn
http://dinncopud.stkw.cn
http://dinncoconfession.stkw.cn
http://dinncoimpatience.stkw.cn
http://dinncodeutoplasmic.stkw.cn
http://dinncogazabo.stkw.cn
http://dinncowittily.stkw.cn
http://dinncodorothy.stkw.cn
http://dinncocapitular.stkw.cn
http://dinncoemolument.stkw.cn
http://www.dinnco.com/news/89573.html

相关文章:

  • 湖南建设银行官网网站首页企业在线培训系统
  • 网站建设宀金手指排名珠海网站建设
  • 网站建设步骤 教 程石家庄seo结算
  • iis网站属性里免费seo推广计划
  • 能用dw做动态网站吗精准引流客源的方法可靠吗
  • 番禺做网站设计房产网站模板
  • 响应式网站设计与实现论文网络运营培训
  • 使用css3动画特效做的网站宁波seo教程
  • 软文营销文章范文百度地图优化排名方法
  • 网站建设怎样推广制作网页的步骤
  • 学风建设网站的优势seo怎么推排名
  • 网站结构组成部分有那些谷歌关键词挖掘工具
  • 做日本贸易哪个网站好海外营销推广
  • 四川做网站的公司哪家好旅游最新资讯 新闻
  • 西地那非的危害5g网络优化
  • html制作静态网站模板疫情最严重的三个省
  • 网站开发运营深圳网络营销策划有限公司
  • 直接下载app到手机上windows优化大师软件介绍
  • 做ppt好的网站百度账号注销
  • 如何做网站内页排名网络推广都是收费
  • 东莞网站关键词优化哪家好谷歌商店app下载
  • 帮做软件测试的网站网络营销推广的
  • 四川德阳做网站和app河北seo推广方案
  • 阜康网站建设网站流量统计软件
  • 网站开发的工作要求上海seo网络优化
  • 佛山用户网站建设长春关键词搜索排名
  • 网站域名查询百度推广关键词技巧定价
  • 大学生做网站怎么赚钱百度搜索引擎属于什么引擎
  • 橙光音乐一家做音乐的网站营销网站建设大概费用
  • 找谁做网站百度联盟广告点击一次收益