自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Alamo Fire

Better master one than engage with ten.

  • 博客(110)
  • 资源 (11)
  • 收藏
  • 关注

转载 从“庖丁解牛”看股票交易的“顺势而为”

如今,我这把刀用了19年了,但是刀锋依然像刚在磨刀石上磨好的一样锋利,因为我发现牛的骨节之间有间隙,而且刀刃很薄,用很薄的刀刃插入有空隙的牛骨之间,绰绰有余,而且不仅不损坏刀锋,还省力。每一次行为,都是对你心中的“刀刃”的一种折损,每一次的行为,都是对自己交易之心的伤害,久而久之,交易之心千疮百孔,也会在这种“损耗”型交易里迷失自我,迷失本心。拉出你的交割单,找到那些让你舒服的交易,找到那些让你看得清楚的交易,找到那些让你从进场到出场都明明白白的交易,找到那些让你从始至终都不会过多担心的交易。

2023-08-21 10:02:04 134

原创 iOS中一种超简单的路由实现方式

看了很多的路由实现方式,发现实现的都太复杂,越是复杂的东西越是难以维护,当然复杂的东西好处就是覆盖面比较全。而本文则是使用一种比较简单的方式实现路由的,当然如有建议或者想法可以及时跟我沟通,让我也能有更好的进步。

2023-08-18 17:26:53 283

原创 iOS中的metaclass

它包含了一些关于Class结构体的信息,例如它所继承的父类、它所实现的方法、它所拥有的属性等等。metaclass描述了一个类的结构和行为,它包含了一些关于这个类的信息,例如它所继承的父类、它所实现的方法、它所拥有的属性等等。metaclass描述了一个类的结构和行为,它包含了一些关于这个类的信息,例如它所继承的父类、它所实现的方法、它所拥有的属性等等。metaclass描述了一个类的结构和行为,它包含了一些关于这个类的信息,例如它所继承的父类、它所实现的方法、它所拥有的属性等等。

2023-04-30 14:36:17 1114

原创 iOS weak的底层原理

当原始对象被释放时,runtime会遍历该对象对应的entry结构体中的所有weak指针,并将它们设置为nil。在使用weak关键字时,我们需要注意避免循环引用的问题,并确保所引用的对象在使用过程中不会被释放。当有其他对象持有该对象时,它的引用计数器会加1。当持有该对象的对象被释放时,它的引用计数器会减1。需要注意的是,在使用weak关键字时,我们需要确保所引用的对象不会在使用过程中被释放。因此,在使用weak关键字时,我们需要注意避免循环引用的问题,并确保所引用的对象在使用过程中不会被释放。

2023-04-30 14:33:29 270

原创 iOS weak的使用

其中,强引用是默认的指针类型,它会增加对象的引用计数,并在不需要时自动释放。在Block中使用self时:由于Block会持有其所在方法中使用到的所有变量和对象,如果在Block中使用self时不使用weak修饰符,则会形成循环引用。iOS开发中,我们经常会听到weak这个词,它是Objective-C语言中的一个特性,用于解决循环引用的问题。容易出现野指针:由于weak指针不会增加对象的引用计数,因此当对象被释放后,其对应的weak指针会自动变为nil。因此,在多线程环境下使用weak指针需要格外小心。

2023-04-30 14:32:25 1213

原创 iOS 循环引用

为了避免这种问题,我们可以使用弱引用或无主引用来打破对象之间的强引用关系。在上面的代码中,我们将Person类中的car属性设置为无主引用。例如,当一个视图控制器持有一个模型对象,并且这个模型对象也持有这个视图控制器时,就会出现循环引用。在上面的代码中,我们将Person类中的car属性设置为弱引用。iOS 循环引用是一个常见的问题,它会导致内存泄漏和程序的不稳定性。在本文中,我们将探讨iOS循环引用的示例,并提供一些解决方案。为了解决循环引用问题,我们可以使用弱引用或无主引用来打破对象之间的强引用关系。

2023-04-30 14:29:51 1748

原创 iOS 多线程使用示例

NSOperation是iOS中另一个常用的多线程技术,它是一个抽象类,可以用来封装一个任务。在这个示例中,我们创建了一个名为operation的NSBlockOperation对象,并将其添加到名为queue的NSOperationQueue中。在iOS中,多线程是指同时执行多个任务的能力。在这个示例中,我们手动创建了一个名为myThread的线程,并将其绑定到一个名为myThreadMainMethod的方法上。在本文中,我们将介绍iOS多线程的使用示例,以帮助开发人员更好地理解和应用多线程技术。

2023-04-30 14:29:10 1997

原创 iOS autorelease 示例研究

iOS autorelease是Objective-C中的一个自动内存管理机制,它通过在对象创建时将其添加到自动释放池中,在池被释放时自动释放对象,从而减少手动内存管理的工作量。这意味着,当自动释放池被释放时,这个对象会被自动释放。在上面的代码中,我们在循环中创建了100个NSString对象,并将它们添加到了自动释放池中。在上面的代码中,我们在一个新线程中创建了一个NSString对象,并将其添加到了自动释放池中。在上面的代码中,我们创建了一个NSString对象,并将其添加到了自动释放池中。

2023-04-30 14:27:34 1477

原创 iOS ARC

首先,ARC只能管理Objective-C对象的内存,不能管理C、C++等其他类型的对象。其次,ARC只是自动插入retain、release和autorelease方法的调用,而不能解决所有的内存管理问题。在ARC中,开发者不再需要手动管理对象的内存,这大大简化了开发过程,同时也减少了内存泄漏的风险。这些方法会根据对象的引用计数来自动管理对象的生命周期。总之,iOS ARC是一种非常方便的内存管理技术,可以让开发者更加专注于业务逻辑的实现。但是,在使用ARC时也需要注意一些问题,以避免出现不必要的麻烦。

2023-04-30 14:26:52 2027 1

原创 iOS中的autorelease

例如,在使用Block时,如果Block中使用了某个对象并将其加入到了autorelease池中,那么在Block被执行时这个对象可能已经被释放了,从而导致程序崩溃。在这个例子中,我们使用了NSString类的initWithFormat方法创建了一个字符串对象,并在其后调用了autorelease方法将其加入到autorelease池中。autorelease是iOS中的一种内存管理机制,它的原理很简单:当一个对象被加入到autorelease池中时,它不会立即被释放,而是等到池子被清空时才会被释放。

2023-04-30 14:24:27 2090

原创 iOS内存管理

ARC是一种自动化的内存管理机制,它通过在编译时插入内存管理代码来自动管理对象的引用计数。在ARC机制下,系统会自动管理对象的引用计数,从而避免了因为忘记释放内存而导致的内存泄漏问题。弱引用是指一种不持有被引用对象的弱指针,它不会增加被引用对象的引用计数。当对象不再被引用时,其引用计数会减少1。开发者不需要手动管理对象的引用计数,从而避免了因为忘记释放内存而导致的内存泄漏和野指针等问题。使用ARC机制可以让开发者不需要手动管理对象的引用计数,从而避免了因为忘记释放内存而导致的内存泄漏和野指针等问题。

2023-04-30 14:22:32 2304

原创 iOS Runtime:你不知道的那些事

这样,我们就可以在程序运行时进行一些“魔法”,比如动态创建一个类、替换一个方法的实现等等。具体来说,当我们调用一个不存在的方法时,iOS Runtime会先调用我们实现的methodSignatureForSelector方法来获取方法签名。这个时候,我们就可以使用iOS Runtime提供的函数method_exchangeImplementations来替换方法的实现。它指的是一组相关的类,它们都继承自同一个抽象基类,并且提供了不同的实现方式。这样,在调用原来的方法时,实际上会调用我们自己写的新方法。

2023-04-30 14:18:11 1086

原创 iOS 关于深copy和浅copy的一些误区

题记:请问property里面的copy是深copy还是浅copy?面对上面的这个问题,你先的理解什么是深copy和浅copy,参考以下的图说明:我们创建了一个对象A,然后指针P1指向了对象A,这时候进行了浅copy,简单说就是把指针P2直接指向了对象A,而进行深copy之后又创新创建了对象B,同时新的指针指向了对象B。总结上面就是,浅copy就是指针的copy,深copy就是指针和对象的copy那我们在property里面用的copy到底是哪一种copy方式?这主要看你copy的内容,.

2022-05-19 16:46:43 104

原创 ‘async‘ call in a function that does not support concurrency

swift5.5中加入了async/await我写了一段这样的代码:DispatchQueue.global().async { [weak self] in self?.test() } } func test() async { let m = await cakkBackData4() print(m)}然后提醒我如下的错误:‘async’ call in a function that does not support conc.

2022-04-16 21:05:23 3021

翻译 KVC简介 待续

KVCKey-value编码是一种由NSKeyValueCoding非正式协议启用的机制,对象采用该协议来提供对其属性的间接访问。当一个对象是key-value编码兼容的,它的属性可以通过一个简洁、统一的消息传递接口通过字符串参数寻址。这种间接访问机制补充了实例变量及其相关访问器方法所提供的直接访问。通常使用访问器方法来获得对对象属性的访问权。get访问器(或getter)返回属性的值。设置访问器(或setter)设置属性的值。在Objective-C中,你也可以直接访问属性的底层实例变量。以上述任

2022-03-28 23:51:42 363

原创 iOS15使用带Header的tableview 顶部出现空白问题

使用带Header的tableview 顶部出现空白问题如果你的系统是iOS15中出现,那么这就是iOS15 SDK带来的新问题,需要单独处理,处理方式如下:if (@available(iOS 15.0, *)) { table.sectionHeaderTopPadding = 0;}问题原因:UITableView新增了一条新属性:sectionHeaderTopPadding, 默认会给每一个section header 增加一个高度,当我们使用 UITableViewStyl

2021-10-23 14:36:24 3105

原创 metaclass初步研究

/************************************************************************ objc_allocateClassPair* fixme* Locking: acquires runtimeLock**********************************************************************/Class objc_allocateClassPair(Class superclass,

2021-06-17 14:52:59 89

原创 通过将OC编译成C++ 一探究竟(边学编写,帮忙点评)

只说重点找到类得信息,如下:struct _class_t { struct _class_t *isa; struct _class_t *superclass; void *cache; void *vtable; struct _class_ro_t *ro;};struct _class_ro_t { unsigned int flags; unsigned int instanceStart; unsigned int instanceSize; const.

2021-03-25 15:23:39 251

原创 Runtime 源码梳理: 草稿

/// An opaque type that represents an Objective-C class.typedef struct objc_class *Class;/// Represents an instance of a class.struct objc_object { Class _Nonnull isa OBJC_ISA_AVAILABILITY;};/// A pointer to an instance of a class.typedef str.

2021-03-23 21:25:32 108

原创 2021年iOS基础知识汇总-初步学习篇

Category类struct category_t { const char *name; classref_t cls; struct method_list_t *instanceMethods; struct method_list_t *classMethods; struct protocol_list_t *protocols; struct property_list_t *instanceProperties; // Field..

2021-03-23 10:39:54 391

原创 Swift枚举-持续整理中

枚举一个枚举定义了一个通用型的一组相关的值,使您能够工作在你的代码中的类型安全方式的值。如果您熟悉C,您将知道C枚举将相关名称分配给一组整数值。Swift中的枚举更加灵活,不必为每种枚举都提供值。如果为每种枚举情况提供了一个值(称为原始值),则该值可以是字符串,字符或任何整数或浮点类型的值。或者,枚举案例可以指定要存储的任何类型的关联值以及每个不同的案例值,这与其他语言中的并集或变体很相似。您可以将一组常见的相关案例定义为一个枚举的一部分,每个案例都有一组与之相关的不同类型的适当类型的值。S

2021-03-22 22:26:48 219

原创 闭包精讲-翻译与苹果原文

闭包闭包是功能完备的功能块,可以在代码中传递和使用。Swift中的闭包类似于C和Objective-C中的块以及其他编程语言中的lambda。闭包可以从定义它们的上下文中捕获和存储对任何常量和变量的引用。这称为关闭这些常量和变量。Swift为您处理捕获的所有内存管理。笔记如果您不熟悉捕获的概念,请不要担心。下面在捕获值中对其进行了详细说明。正如Function中介绍的那样,全局和嵌套函数实际上是闭包的特殊情况。闭包采用以下三种形式之一:全局函数是具有名称且不捕获任何值的闭包。

2021-03-22 16:55:44 130

原创 Dispatch

Dispatch通过将工作提交给系统管理的调度队列,在多核硬件上并发执行代码。概述Dispatch,也称为Grand Central Dispatch(GCD),包含语言功能、运行时库和系统增强功能,为支持macOS、iOS、watchOS和tvOS中的多核硬件上的并发代码执行提供了系统的、全面的改进。BSD子系统、Core Foundation和Cocoa api都进行了扩展,以使用这些增强功能来帮助系统和应用程序更快、更高效地运行,并提高响应能力。考虑一下单个应用程序有效地使用多个核心有

2021-03-21 10:30:29 589

原创 Swift:什么时候需要mutating这个参数

Swift中有两种类型:值类型和引用类型structure和enumeration是值类型(value type)class是引用类型(reference type)示例:在结构体中,有一个实例方法,如果直接修改属性的值,编译器会报错。struct Sefn { var i = 0 mutating func moveI(fI: Int) { i = fI }}上面中如果不添加mutating这个修饰符,则会出错,提示为:Cannot assig

2021-03-05 16:24:21 566

原创 OC Protocol(待续)

Protocol协议声明任何类都可以选择实现的编程接口。协议使得两个通过继承而远近相关的类可以相互通信以实现某个目标。因此,它们提供了一种替代子类化的方法。任何可以提供对其他类有用的行为的类都可以声明一个编程接口,以匿名方式提供该行为。任何其他类都可以选择采用协议并实现其一个或多个方法,从而利用该行为。如果协议采纳者实现了协议中的方法,则声明协议的类将调用这些方法。其实OC中的Protocol跟Java中的Interface是非常相似的。Formal and Informal Protocols有

2020-10-15 13:32:28 233

原创 objc4-787.1源码编译(未完 不续 参考库C老师的即可)

1 下载源码打开此处https://opensource.apple.com/选择一个系统进入:搜索objc2 打开工程打开objc.xcodeproj编译,出现如下问题:Showing All MessagesTraditional headermap style is no longer supported; please migrate to using separate headermaps and set ‘ALWAYS_SEARCH_USER_PATHS’ to NO.

2020-10-13 17:12:23 467

原创 Swift源码编译(持续更新中)

下载源码创建源码存放位置mkdir swift-sourcecd swift-source下载源码git clone https://github.com/apple/swift.git./swift/utils/update-checkout --clone或者git clone [email protected]:apple/swift.git./swift/utils/update-checkout --clone-with-ssh...

2020-10-13 16:39:18 435

原创 Objective-C Runtime Programming Guide

Objective-C Runtime Programming Guide与运行时交互Objective-C程序在三个不同的层次与运行时系统交互:通过Objective-C源代码;通过在基础框架的NSObject类中定义的方法;通过直接调用运行时函数。Objective-C Source Code在大多数情况下,运行时系统在后台自动工作。您只需编写和编译Objective-C源代码就可以使用它。当您编译包含Objective-C类和方法的代码时,编译器将创建实现语言动态特性的数据结构和函

2020-10-12 16:56:31 169

转载 Swift 中的 Sequence 基础篇

内容简介:Swift 中的 Sequence 基础篇本文转载自:添加链接描述本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有。Swift 是一门可以让你按照自己喜欢的方式写代码的语言,它有很强的扩展能力,而它众多的 Collection Protocols 则是这种扩展能力的提供者之一。本文介绍一下 Sequance 和 Iterator 的基本概念,及如何实现一个 Sequence。撰写本文时的 Swift 版本是 Swift 3.1。SequenceSequence 是一系列相同

2020-08-14 11:33:05 1571

原创 加了 Alert Actionsheet 出来的吧, iOS12.x+ 的 bug。。。

2020-07-06 15:06:52.402824+0800 工作清单[52603:1407850] [LayoutConstraints] Unable to simultaneously satisfy constraints.Probably at least one of the constraints in the following list is one you don’t want.Try this:(1) look at each constraint and try to fig

2020-07-06 15:45:54 169

原创 Xcode11+打包时提示:com.apple.transporter.mediatoolkit-2.0.0.jar

升级到Xcode 11* 后,上传app store失败,提示需要安装 .jarApp Store Connect Operation ErrorA downloaded software component is corrupted and will not be used. https://contentdelivery.itunes.apple.com/transporter/repositories/j2se8/2.0.0/bundles/com.apple.transporter.mediat

2020-07-01 18:11:12 2359

原创 IteratorProtocol说明

其实所有的内容均来自Apple开发官网IteratorProtocol类型:Protocol说明:一次提供一个序列值的类型。申明protocol IteratorProtocol概述迭代器协议与序列协议紧密相连。序列通过创建一个迭代器来提供对其元素的访问,迭代器跟踪其迭代过程,并在一次返回一个元素。无论何时在数组、集合或任何其他集合或序列使用for-in,都将使用该类型的迭代...

2020-04-15 18:26:36 250

原创 NSInvocation 理解

NSInvocation 理解说明类说明类申明简介使用调用与方法签名配置调用对象selectortargetsetArgument:atIndex:getArgument:atIndex:argumentsRetainedretainArgumentssetReturnValue:getReturnValue:优势使用说明类说明作为一个呈现Objective-C消息的对象。类申明@int...

2020-03-19 15:14:56 828

原创 【bug系列】IPA processing failed

在上传到APP Store 或者通过Ad Hoc导出包的时候出现如下错误这个时候有一个可能的错误就是Framework在制作的时候将X86和ArmX系列做了融合而在上线的时候APP Store是不支持X86架构的,所以需要剔除。解决办法在工程中添加如下脚本# Without further ado, here’s the script. Add a Run Script step t...

2019-11-29 14:10:17 328

原创 Logos介绍以及用法【未完待续】

参考链接Logos wiki定义Logos是theteosdevelopment套件的一个组件,它允许使用一组特殊的预处理器指令轻松而清晰地编写方法挂钩代码。概述Logos提供的语法极大地简化了MobileSubstrate扩展(“tweaks”)的开发,它可以在整个OS中钩住其他方法。在这种情况下,“方法钩住”是指用于替换或修改在电话上的其他应用程序中找到的类的方法的技术。...

2019-11-29 10:48:42 823

原创 【逆向】class-dump导出头文件

链接地址:class-dump简介这是一个命令行实用程序,用于检查存储在Mach-O文件中的Objective-C运行时信息。它为类、类别和协议生成声明。这与使用“otool-ov”提供的信息相同,但作为普通的Objective-C声明提供,因此它更加紧凑和可读。This is a command-line utility for examining the Objective-C runt...

2019-11-27 10:04:07 400

原创 Swift的initialization

InitializersInitializers被调用来创建特定类型的新实例。其最简单的形式中,一个初始化类似于实例方法不带参数,使用init关键字写成:init() { // }下面示例定义了的结构体Fahrenheit,用来存储存储温度。Fahrenheit结构具有一个存储的属性,温度,它的类型是Double:struct Fahrenheit { var temp...

2019-11-26 17:36:14 91

原创 北京住房公积金办理申请表下载地址

北京住房公积金办理申请表下载你想要的都在这里:

2019-11-22 13:25:28 281

原创 Type 'XXX' does not conform to protocol 'SomeProtocol'

有时候我们在调试Swift程序的时候会出现如下的情况:Type ‘SomeClass’ does not conform to protocol ‘SomeProtocol’碰到这个问题该怎么解决了?我们到苹果Swift开发文档看看参考文档里面有Initializer Requirements当我们定义一个protocol的时候,如下示例:protocol SomeProtocol ...

2019-11-14 13:57:54 4910

原创 报错Provisioning profile "XX" doesn't include signing certificate "xx developer"

讲一下我是怎么解决的把,我当时链接的是真机,跑的时候把release的证书加载了上面,所以一直报错,当我改成debug模式下的话就ok了,还是自己不小心,仅供参考~...

2019-10-13 17:40:41 876

SwiftUI相关资料需要的可以下载

整个系统资源较少 大家可以下载查看 请勿用于商业目的 仅供学习参考

2022-05-16

未来商业模式30个大胆思考,中国99%的公司和集体可能消失

未来社会的商业模式,让我们提前了解这个社会发展方向未来社会的商业模式,让我们提前了解这个社会发展方向未来社会的商业模式,让我们提前了解这个社会发展方向未来社会的商业模式,让我们提前了解这个社会发展方向

2019-02-18

iOS组件化-实现组件分离

实现一个简单的组件化,不需要pod只需要做一个理解性质的文件

2019-02-18

携程是如何去做React-Native优化的

携程是如何去做React-Native优化的,如何理解以及应用

2018-06-07

精美的Swift图

这个图是一个相当精美的swift图画的图片,当你看到的第一感就像作为桌面

2018-06-04

iOS必看的面试题梳理

iOS必看的面试题,全面的讲解了iOS面试中可能会面临的问题

2018-06-04

Course teacher

daily build 就是把一个软件项目的所有的最新的代码从配置库中取出,然后从头进行编译,链接和运行。更甚者可以再运行测试包对软件的主要功能进行测试,发现并报告错误的整个过程。通常由工具自动完成。daily build 一般是在每日下班后半夜进行,前提是员工check in 最新的code到配置库中。所以可以把daily build 戏称为 nightly build。然后在第二天上班时分析build 的log,找出error并mail给所属模块负责人,敦促解决(如果这一步能自动完成就更完美了)。按照上面的解释,daily build 译为“每日构建”,是很合适的。但daily build 的另一个重要功能就是验证软件中各模块关系是否正确,也可称为“每日集成”。

2018-06-04

ios开发中的block详解

iphone开发中block的详解.pages

2016-03-18

swift编程学习

学习swift最原生的资料,可以学习学习

2016-03-08

iOS画图-这种动画制作远离

很好的学习ios画图的一本书,需要的同学可以拿走

2016-03-08

iOS并发编程指南

一本很不错的书,详细的讲述了并发开发的一些原理和知识,需要的朋友看看

2016-03-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除