首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS KVC和KVO

KVO实现原理 KVO相关: 1\. iOS用什么方式来实现对一个对象KVO?(KVO本质是什么?) 2\. 如何手动出发KVO? 3\. 直接修改成员变量会触发KVO么?...当我们DLperson实例对象调用setAge方法, 实例对象isa指针找到类对象,然后类类对象寻找相应对象方法,如果有则调用, 如果没有则去superclass指向父类对象寻找相应对象方法...自己setAge方法添加了 其他操作。...、key、iskey顺序查找成员变量 找到直接复制 未找到报错NSUnkonwKeyException错误 _key、_isKey、key、iskey复制顺序 ///> DLPerson.h 文件...valueForKey:原理 如果可以访问会按照 _key、_isKey、key、iskey顺序查找成员变量 找到直接复制 未找到报错NSUnkonwKeyException错误

80930
您找到你想要的搜索结果了吗?
是的
没有找到

iOS系统架构及常用框架

CocoaAsyncSocket: iOS开发中使用Socket通信,一般都是用第三方库AsyncSocket SDWebImage:又一大网络大户, 网络图片获取及缓存处理。...当引入此头文件后,便可以程序里使用任何在UIKit里声明类 CoreGraphics 它是iOS核心图形库,平时使用最频繁point,size,rect等这些图形,都定义在这个框架,类名以CG...Foundation框架 所有的Mac OS X和IOS程序都是由大量对象构成,而这些对象根对象绝大多数是NSObject,NSObject就处在Foundation框架之中,也可理解为Foundation...通常我们会将他们分为几类: 对象 集合 操作系统服务:文件系统、URL、进程通讯 通知 归档和序列化 表达式和条件判断 Objective-C语言服务 NSObject Objective-C NSObject...Objective-C,类也是用对象来表示,而类isa指针指向它metaclass(存储静态成员变量和类方法)。 super_class指针:指向父类。 name:类名称。

7.3K21

老司机 iOS 周报 #79 | 2019-08-12

本文从原理出发,介绍了抖音 iOS 客户端团队是如何通过静态扫描和运行时 trace 找到启动时调用函数,然后修改编译参数完成二进制文件重新排布。...swift-corelibs-foundation Release Notes for Swift 5.x @享耳先森,@老驴: Swift 开源版 Foundation Swift 5....x 有了不小改动: 依赖: Swift 开源版 Foundation 初版实现大量地使用了开源库,这次新版本整理了一下开源库依赖,并且把之前 Foundation 拆分成了三个库: FoundationNetwork...NSSortDescriptor 改动: 现在, Swift Foundation 包含了 NSSortDescriptor 实现,同时它与 Objective-C 对应部分兼容。...Swift-MemoryLayout @四娘:作者在学习 Swift 内存布局过程,写了一个简单 Demo 演示如何使用指针去读取 Array / Dictionary 内部变量,进一步验证各种类型内存布局

99030

绘图-iOSOC项目中集成Charts绘制图表框架

4.ViewController.m引入相关头文件 如下图: ? 引入头文件 引入完成之后,编译一下,如果有错,Clean一下再次编译,编译没有错误说明导入成功....使用Charts 绘图 使用过程关键所在是要熟悉 Charts各种属性设置,而且大部分不同绘图类文件属性名称代表含义一致。 我实际使用做了封装,使用起来非常简练、方便: ?...leftAxis.spaceTop = 0.05; 对于使用柱状图展示百分比。如果分母是 0,那边x坐标轴上会出现 NaN字样,此时应该判断,如果分母为0,需要把整个设置为0....stringForValue(entry.x, axis: nil) + allMarkText) } ---- 详细使用参数设置可以参考如下两篇文章: iOS使用Charts框架绘制—柱形图...iOS使用Charts框架绘制折线图 小结 以上大概就是我使用 Charts这个绘图类库笔记了,如有错误之处,请留言指正,后续如果有新心得总结会更新此文。

6.9K62

Swift 周报 第三十三期

[3] 提问: 观看 SwifUIi 视频,看到两处看起来像是拼写错误东西。想知道为什么它们表达如此含糊: 反斜杠有什么用?...使用 Swift Package 插件将自定义字体加载到您应用程序[9] 摘要: 本文介绍了如何使用 Swift Package 插件将自定义字体加载到应用程序。...结合 Swift Package 可重用性和 Swift Package 插件强大功能,甚至可以构建从字体文件自动生成所有必要代码。本文使用 SwiftGen 来演示如何实现这一点。...最后,可以使用生成代码来 SwiftUI 和 UIKit 中使用自定义字体。 掌握 Swift Foundation Formatter API 。...自定义格式样式[10] 摘要: 本篇博客介绍了如何使用 Swift Foundation Formatter API 自定义格式样式。

31420

HQ移动20170317期周报

首先明确是 ** 类内使用成员变量{}, 类外使用属性@property,** 所以,此处我说基本是 .m 文件中使用成员变量。...执行速度更快,IPA体积更小 ( 从 iOS 开发争议(一)得知) 感觉个人平常很少用成员变量,当然除了 init 和 dealloc 、getter、setter 除外咯,其他地方例如临时生成一个...PS: Block 对于成员变量一定要 使用 self-> _testName, 否则直接使用 _testName, 就算添加了 weakSelf/strongSelf 还是会有循环引用。...8 this class is not key value coding-compliant for the key 错误 对于这种 Bug ,最常见是我们用 stroyboard ,某个设置IBAction...但是我此处不是的哦,而且这个问题在 stackoverflow 处 已经讨论很多了,而我此处场景是使用 谓词 遇到

49230

一样iOS开发程序员为什么有人4k有人40k?原因就在这里!

技术更新过程中产生一些坑,是在所难免事情。所以希望大家都能用一个比较平和心态去搞定这些坑。 我之前写过一篇《iOS 开发如何提高》文章,简单总结来说,就是多读、多写、多思考、多讨论。...用 Swift 来完成 App 还有一个不大不小问题就是体积会比较大,因为 Swift 相关库会直接打包进 App 。...我个人对于 Swift 预期是: 1、2 年内能够全面替代 Objective-C。但在近期,我个人还是会使用 Objective-C 来完成公司项目。 二,iOS 开发者应该如何自我提升?...如果是自己新开项目,要保证随时都能清晰想到项目当中每个地方是怎么实现,测试或者用户反馈了问题以后,能立马想到可能错误原因。如果是接手项目,就要尽快去了解主要界面和功能是如何实现。...3.有空将排行榜上应用下载排名靠前应用,去欣赏并分析主流app界面,功能实现,拿到设计图,去考虑界面的合理性,功能怎么实现最符合用户操作习惯。

79700

iOS安全基础之钥匙串与哈希

了解同时,我还会告诉你如何使用一些基本加密哈希方法来安全地将你输入信息存储iOS钥匙串,这样一来,你数据私密性和受保护程度都将大幅度提高。...真实应用程序,此时用户就会收到错误提示。 3.你可以为用户分配一个名称,就本文而言,你可以从设备名称中分配一个名称。...AuthController.swift顶部,由Foundation导入以下添加内容: import CryptoSwift CryptoSwift是用Swift编写许多标准加密算法中最受欢迎集合之一...使用唯一标识符可以调试提供帮助,这样任何与你通知相关内容都可以从日志中提到其他框架中被提取出来。...AuthController.signOut() 当选择注销按钮,程序就会调用你设置新方法来清除登录用户数据。 应用程序处理错误是一个好主意, 构建并运行,然后点击注销按钮。

2.8K20

你知道iOS开发工作为什么有人4k有人40k吗?

Swift 来完成 App 还有一个不大不小问题就是体积会比较大,因为 Swift 相关库会直接打包进 App 。...我个人对于 Swift 预期是: 1、2 年内能够全面替代 Objective-C。但在近期,我个人还是会使用 Objective-C 来完成公司项目。   ...丨iOS 开发者应该如何自我提升?   对于技术实力提升,我比较推荐最近 tinyfool 写了一篇文章,叫《不要轻易简历上写我热爱编程,我热爱学习》。...如果是自己新开项目,要保证随时都能清晰想到项目当中每个地方是怎么实现,测试或者用户反馈了问题以后,能立马想到可能错误原因。如果是接手项目,就要尽快去了解主要界面和功能是如何实现。...3.有空将排行榜上应用下载排名靠前应用,去欣赏并分析主流app界面,功能实现,拿到设计图,去考虑界面的合理性,功能怎么实现最符合用户操作习惯。

2.8K90

iOS之深入解析Xcode 13正式版发布40个新特性

十四、链接 dyld 共享缓存已拆分为多个文件; 使用 macOS 12 或 iOS 15 或更高版本部署目标构建所有程序和 dylib 现在都使用链式修复格式; 统一 dyld2 和 dyld3。... LocalizedStringKey 和 Foundation StringLocalizationKey 准确地提取字符串插和字符串文字; 添加了对 genstrings 和本地化导入和导出支持...,以提取 Objective-C 代码中使用新 NSLocalizedAttributedString 宏字符串; 导出本地化时,多个本地化错误现在会聚合到一个警报对话框导出以进行本地化时...枚举自定义如何将性能测试自定义指标的测量值与设置基线进行比较; XCTest 现在能够受支持 iOS 设备上 UI 测试合成指针交互; Xcode 现在为在运行测试崩溃进程收集代码覆盖率数据...使用 iOS 15 beta SDK 进行编译,几个与窗口相关关键属性、方法和通知会更改行为。

8.7K40

ios知识架构

学习ios开发,从哪儿学起?都要学哪些知识?如何才算掌握或精通ios开发?笔者根据自己多年ios开发经验,给出一些体会,以便为立志成为ios开发精英的人员快速找到一条学习之路。...二、ios特色关键知识点 下列知识点大部分是ios特有的,iOS 开发起着非常重要作用,需要仔细学习领会。...高级框架以图形、音视频内容为主,主要是提供了更低层和更灵活硬件操作接口。仅在必要再去深入学习即可。...具体各Framework功能和分类见下表: 表1:iOS Framework 分类和简述 综上所述,ios开发最基础就是Objective-C或Swift语言、Foundation和UIKit框架基本内容及...Xcode简单使用;进一步就是数据库、网络、图形动画、音视频、系统安全和ios专用业务接口(如地图、加速器、健康、语音识别、Web.....)调用和多线程使用,此时对Xcode使用会增加单元测试、

52930

Swift 3.0介绍

2.x开发版本新版本上运行问题,不过基于最近基本版本改动比较小原因吧,我觉得swift是为了ios趋势。...编译器和语法变化 函数或方法参数 调用函数或方法从第一个参数开始就必须指定参数名 Swift历史版本中出现过调用函数不需要指定任何函数参数(或者从第二个参数开始指定参数名),调用方法则必须从第二个参数开始必须指定参数名等多种情况...之前Swift版本c是Int!...Swift3.0之前如果要定义协议可选方法,只需要给协议加上@objc之后方法使用optional修饰就可以了,但是Swift3.0除了协议需要@objc修饰,可选方法也必须使用@objc来修饰...,也因为Swift处于初级阶段,很多类库和方法命名都尽量和ObjC保持一致,使用Swift开发iOS应用处处可以看到ObjC影子。

1.3K80

Swift 3.0介绍

2.x开发版本新版本上运行问题,不过基于最近基本版本改动比较小原因吧,我觉得swift是为了ios趋势。...编译器和语法变化 函数或方法参数 调用函数或方法从第一个参数开始就必须指定参数名 Swift历史版本中出现过调用函数不需要指定任何函数参数(或者从第二个参数开始指定参数名),调用方法则必须从第二个参数开始必须指定参数名等多种情况...之前Swift版本c是Int!...Swift3.0之前如果要定义协议可选方法,只需要给协议加上@objc之后方法使用optional修饰就可以了,但是Swift3.0除了协议需要@objc修饰,可选方法也必须使用@objc来修饰...,也因为Swift处于初级阶段,很多类库和方法命名都尽量和ObjC保持一致,使用Swift开发iOS应用处处可以看到ObjC影子。

1.2K90

重回iOS应用开发

,很微妙感觉;比方我现在是架构师位置上,但在iOS技能上,却没有充当架构师能力,如何平衡现实和期望,着实让人纠结一种状态,重新捡起来,以稍微高一些视角去定位,还是比之前有了更多收获 ,尽管由于项目人力配备不齐...,正式iOS开发只有两个,最后可能还是会参与到开发工作,那就两者都兼顾吧。...iOS原生技术,其实选择Objective-C还是Swift来作为开发语言,确实是拿不准,毕竟苹果官方教程主推还是Swift,但通过同iOS开发多年经验同学交流后发现,使用Objective-C作为开发语言项目...重新熟悉ObjectC语法过程,有几个点之前关注不多,记录下: 一、Protocol可以用@property形式声明属性,只不过Protocol声明属性,只有对应setter/getter...这些组件框架主要出发点是面对大型应用项目开发,项目组成员更好进行协作开发,能遵循固定代码框架,实现高质量输出。

42420

sentry笔记整理

简介 开源错误跟踪,帮助开发人员实时监控和修复崩溃。不断重复。提高效率。改善用户体验。...减少部署错误率。 具体部署程序可查看getsentry/onpremise 使用nginx接受请求并对其进行转发。并使用了ngx_http_realip_module模块转发真实请求IP。...客户端嵌入到App,当应用发生异常情况,就会向服务器端发送异常通知,服务器端则将信息记录到数据库汇总,并提供web方式,方便对异常进行查看和分析,避免需要登录服务器后台查看生硬log文件。...收集日志 客户端运行错误日志 Android IOS HTML 服务器端项目运行错误日志 PHP Web环境错误日志 PHP-fPM错误日志 Nginx错误日志 目前日志捕获,都有相应SDK,非常方便...sentry主要是为让我们专注于系统和程序异常信息,提高排查效率,日志事件量达到一个限制时候可能还会丢弃一些内容。

1.6K30

Swift 周报 第二十期

Pro 和 iPhone 14 Pro Max 用户报告说,当设备被打开,iPhone 显示屏上闪烁着水平线,但没有明确原因或如何修复它。... Reddit 主题帖子,数十名 iPhone 14 Pro 用户报告说,当设备被打开,一条或多条绿色和黄色线条可能会在屏幕上闪烁,几秒钟后消失。...根据这些用户说法,苹果支持部门已经通知他们,该问题不是硬件缺陷造成,而是 iOS 16 错误 Bug。...这对于想要使用 StaticBigInt 代码来说是一个小小不便,但是不存在这样代码,因为 5.7 不存在该类型。 这样代码可以省略前导 + 作为解决方法。...return } 正如评论所暗示那样,我没有引用 guard 语句 else 部分错误类型。据我所知,没有办法使用这种语法并访问返回错误类型。

1.3K40

Swift 周报 第三十九期

回答 我刚刚发现并修复了 39 个案例,当模块包含大量 Swift 文件,我们会看到这种情况发生。(大量宏展开也可能发生)。...[编辑:对于那些好奇的人来说,编译器有一个线性时间算法,可以从源位置内部表示映射到该位置所在源文件。该算法“永远”是线性时间,但最近错误修复将其置于热路径。...这将阻止任何人尝试创建它实例并将其存储某个地方。但该类型使用仍然有效,因为宏调用中使用,该类型实际上并不调用 init(stringLiteral:) 。...仅当用户尝试直接实例化新类型才会发生运行时错误,否则除了宏签名命名之外,该新类型对他们是隐藏。...用示例解释了 Swift 和类型参数包[12] 摘要: 本文介绍了 Swift 和类型参数包,并结合示例进行了详细解释。

22220
领券