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

iOS 面试策略之经验之谈-面向协议的编程

这样我们可以保证不破坏原来代码封装的情况下实现新的功能。Objective-C ,我们可以用 category 来实现类似功能。...一个专业的程序员不仅要知道问题出在哪里,更要知道该怎么修正问题。 OOP 有以下几个缺点: 隐式共享。class 是引用类型,代码某处改变某个实例变量的时候,另一处调用此变量时就会受此修改影响。...定义一个 protocol,然后协议扩展(protocol extension)添加 shake 方法; 分析这三种方法: 自定义的类添加 shake 方法扩展性不好。...团队开发并不是所有人都知道这个 extension 存在 shake 方法,同时随着功能的扩展,extension 中新增的方法会层出不穷,它们很难归类管理。...之后 binarySearch 的方法用了泛型,保证其中每一个元素都遵循 Comparable 协议,并且所有元素都是一个类型。

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

iOS工程师必看的 20 道 面试题

内存泄漏可以用Xcode的Debug Memory Graph去检查,同时Xcode也会在runtime自动汇报内存泄漏的问题。 6. 下面代码中有什么bug?...Swift和Objective-C的混编项目中,如何Swift文件调用Objective-C文件已经定义的方法?如何在Objective-C文件调用Swift文件定义的方法?...,然后协议扩展(protocol extension)添加shake方法 分析这三种方法: 自定义的类添加shake方法扩展性不好。...如果shake方法被用在其他地方,又要在其他类再添加一遍shake方法,这样代码复用性差。 extension实现虽然解决了代码复用性问题,但是可读性比较差。...团队开发并不是所有人都知道这个extension存在shake方法,同时随着功能的扩展,extension中新增的方法会层出不穷,它们很难归类管理。

3.6K40

玩转 Xcode Playground(下)

当然,你也可以不同的代码手动 import 对应的模块以加深理解。 同 Page 的主代码不同,辅助代码并不支持 Playground 的逐行执行、Quick Look 等功能。...Xcode Playground 并没有提供便捷的运行环境区域设置功能。...print("Hello") } */ print("Hello world") Xcode ,通过点击右侧的 Render Documentation 来设置是否启用文档渲染功能。...Swift Playgrounds 渲染文档功能将会一直启用,无法关闭。 更多关于可渲染标注代码的资料,请参阅苹果的 官方文档[3]。...image-20211230165753928 如何设置可编辑代码区域(Swift Playgrounds Only) 通过 Page 代码设定可编辑区域,使用者将只能在指定的编辑区域中修改代码。

1.7K30

如何使用 Swift 开发 iOS PDF 查看器或编辑器

本篇文章,我们将首先讨论整合 ComPDFKit PDF SDK 并探究如何使用它开发 iOS PDF 阅读器ComPDFKit iOS PDF SDK 入门此部分介绍了安装要求、安装包结构以及如何使用...IDE 版本:Xcode 12.0 或更高版本。本篇文章,我们将以 Xcode 14.0.1 为例。目前,Mac 的 M 系列芯片不支持 Apple Silicon 模拟器上运行。... Swift 开发 iOS PDF 查看器或编辑器在此部分,我们分步说明了如何Swift 开发 iOS 应用程序。...本篇文章,我们将以 Xcode 14.0.1 为例。第 1 步:创建一个新项目启动 Xcode,然后选择File -> New -> Project。然后,iOS中选择App ->应用程序。...然后,项目构建设置中找到 Swift Compiler - Code Generation 部分。

300

WWV 2018年十大必看视频

例如,如果您忘记设置委托,则可以输入代码来设置委托,还可以测试此修复程序。使用断点设置委托并立即对其进行测试。您也可以框架内测试函数调用,即使您不知道传入的值 - 您现在正在使用汇编语言。...使用View Debugger的检查器,您可以查找元素并查看当前值或确定它们是由父级还是超级视图设置的。您可以判断视图中的元素是否支持暗模式的暗变体,甚至是辅助功能。...它们是开发功能,测试API和制定自己的灵感的重要工具。 8)Xcode建立更快 - 408 ? Xcode WWDC 2018建立更快 [视频链接] 本次会议充满了对更有效地构建项目的见解。...David Owens介绍了Xcode 10的新功能,以减少构建时间。Jordan Rose介绍了如何优化Swift代码和混合源代码以加快编译速度。...他潜入渲染循环,因为它处理屏幕上获取视图的各个部分。首先是updateConstraints确定是否需要和设置约束更新。其次,子视图的布局和设置。最后,如果需要,显示将绘制视图并刷新。

2.7K20

一文读懂Xcode 9 所有更新:全新模拟器,兼容Swift低版本等

代码重构功能增强 这次 Xcode 9 对代码重构功能有较大的提升,首先是重命名功能,在编辑器中点击类名,然后选择 Refactor -> Rename: 这时,重命名的预览界面会直接显示在编辑器:...另外,这次 Xcode 9 还解决了重命名 Swift 语言中的一个老问题,就是: 常用 Swift 的同学应该都知道这个,以前版本的 Xcode 不支持 Swift 语言的重命名操作。...可以项目设置中选择当前 target 使用的 Swift 版本: Main Thread Checker 顾名思义, Xcode 9 的调试器现在可以检测 UI 操作是否主线程中了。...我们都知道Xcode 左边栏中黄色的小文件夹叫做 Group: 以前的 Xcode 版本, 直接在这里面移动文件是不会影响文件系统位置的,比如把 ViewController.swift 文件移动到...打开项目设置中找到: 现在还是 Preview 版本,Xcode 后面的版本会把它作为默认构建系统,感兴趣的同学也可以尝试一下。

1.8K70

WWDC 2018年十大视频评论

例如,如果您忘记设置委托,则可以输入代码来设置委托,还可以测试此修复程序。使用断点设置委托并立即对其进行测试。您也可以框架内测试函数调用,即使您不知道传入的值 - 您现在正在使用汇编语言。...使用View Debugger的检查器,您可以查找元素并查看当前值或确定它们是由父级还是超级视图设置的。您可以判断视图中的元素是否支持暗模式的暗变体,甚至是辅助功能。...Xcode WWDC 2018建立更快 [视频链接] 本次会议充满了对更有效地构建项目的见解。David Owens介绍了Xcode 10的新功能,以减少构建时间。...如果输入文件发生变化,Xcode知道它需要运行Run Script阶段。此外,如果输出文件丢失,Xcode可以为您重新生成这些文件。Xcode 10的新增内容是有关Run Script阶段的文档。...他潜入渲染循环,因为它处理屏幕上获取视图的各个部分。首先是updateConstraints确定是否需要和设置约束更新。其次,子视图的布局和设置。最后,如果需要,显示将绘制视图并刷新。

3.3K20

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

会发出设计时警告; Watch Storyboards 的预览窗格现在显示画布样式的边; 现在可以 Interface Builder 场景预览以下辅助功能设置:动态类型、粗体文本、按钮形状、开/...十八、预览 预览现在支持预览视图时检查视图的辅助功能元素。...App Store Connect 时创建应用记录的功能; 将应用上传到 App Store Connect 时,Xcode 的分发助手会检测您的应用是否具有有效的内部版本号 (CFBundleVersion...二十二、源码编辑器 Xcode 13 引入了 Vim 键绑定,源代码编辑器模拟 vim 体验并结合现有的编辑器功能首选项启用 Vim 键绑定,使用文本编辑 > 编辑的启用 Vim 键绑定选项...二十八、App Store StoreKit 2 引入了一个现代的基于 Swift 的 API,它利用了新的语言功能,如 Swift 并发性。

8.6K40

玩转 Xcode Playground(上)

Swift 语言推出的同一年(2014 年),苹果就在 Xcode 中集成了 Playground 功能。...如何创建 Playground 项目 Xcode 创建 Playground 项目 Xcode ,点击 File -> New -> Playground 即可创建一个格式为.playground...如何调试代码 Playground 并不提供设置断点的功能,但是可以通过指定执行结束点或单步执行的方式来满足部分的调试需求。...如何获得异步执行的结果(Swift Playgrounds Only) 老版本的 XcodeXcode 12、Xcode 13 已经解决了这个问题)以及 Swift Playgrounds ,如果不经过特别的设定...总结 【玩转 Xcode Playground (下)】,我们将着重介绍有关 SPM、资源管理、辅助代码、文档标注等方面的内容。 希望本文能够对你有所帮助。

3.9K20

肘子的 Swift 周报 #020 | 准备迎接 Swift 6 的到来

然而,在当前的开发环境,自定义宏的使用不仅会显著增加项目的编译时间,而且宏较为复杂时,Xcode 的响应也会受到影响,导致代码自动提示和宏展开功能频繁出错。...期待随着 Swift 6 的发布,Xcode 也能同步提升,带来更高的效率、稳定性以及符合时代的 AI 辅助编程能力。...前一期内容|全部周报列表 原创 如何处理 SwiftData 谓词的可选值[3] Fatbobman( 东坡肘子 )[4] 由于 SwiftData 更改了数据模型的创建机制,而且谓词创建也采用了基于模型代码的类型安全模式...Modding Plugins back into Xcode[9] Bryce Pauken[10] 本篇文章,Bryce Pauken 深入探讨了如何将传统插件功能重新整合进 Xcode。...Pauken 文章不仅详尽地介绍了如何实现将旧式插件功能重新融入 Xcode 的关键步骤,还推出了名为 XcodePluginLoader 的工具,旨在迅速恢复对插件的支持,为开发者提供了一种强大的自定义工具

16910

从预编译的角度理解Swift与Objective-C及混编机制

既然知道如何查看预编译后的样子,我们不妨看看代码使用 #import, PCH 和 @import 后,到底会变成什么样子?...A.h 文件,而不一定局限 A 目录,至于是否递归的寻找则取决于对目录的选项是否开启了 recursive 模式。...第一步 - 如何寻找 Target 内部的 Swift 方法声明 在编译 PetViewController.swift 时,编译器需要知道 PetView 的初始化构造器的类型,才能检查调用是否正确。...在这个问题上,Swift用了和其他语言不一样的方案!...第四步 - Swift Target 如何生成供外部 Swift 使用的接口 Swift用了 Clang Module 的理念,并结合自身的语言特性进行了一系列的改进。

2.1K31

Xcode探索

对这个xcode有了兴趣。探索一下 ? ? 更改应用名字 ? ? 有点省心 ? 点击右键,还有更多选项 ? 点击这里,变换视图 ? 逐渐变多,不知道什么用 ? 推出点这个地方,研究了半天 ?...有点不知道,怎么设置俺的图失去。。。 ? 好像是这样 ? objc开发?我换个swift ? 这个好写点 ? ? ? 它不开机啊,我咋办 ? 我加了这个代码,屏幕应该会变红。但是它不开机我怎么办 ?...接着AppDelegate.swift文件的各个生命周期方法,添加print日志输出方法。当应用程序进入某个状态时,控制台输出相关的日志。 ?...test建一个类 ? ? 在看看目录在哪里 ? 工程变大,文件繁多。这个地方找 ? 高亮关键字了 ? 顶栏,显示项目列表 ? option+点击一个文件。会打开一个辅助编辑器~(小技巧哦) ?...cmd+shift+o(字母哦),快速查找功能 ? ? 用obc写这个功能多,swift

87520

将 iOS 应用体积缩小一半的秘籍:妥善运用动态框架

大家可以查看 Xcode 的主项目来检查是否设置成功。 对于静态库,框架、库和嵌入内容的“Embed”下不会存在与模块相关联的选项。...而将库类型设置为动态后,则会出现一个下拉菜单,我们可以在其中指定如何嵌入框架(如果仍无显示,请通过文件、包、重置包缓存的方式强制刷新)。...初步结果 现在我们已经 Package.swift 定义了动态框架,并告知 Xcode 如何将其链接至各个目标(包括框架、库和嵌入内容),现在我们可以保存 EmergeMotors 并尝试分析。...免责声明:整个设置过程确实有点烦人,而且每次更新共享资源时都会带来沉重的运行开销。所以让架构复杂化之前,请确保各个目标是否确有必要共享资产。...他们 Swift Package Manager 中提供了出色的第一方包生态系统,但却不愿认真解释要如何充分加以使用。

11210

Sourcery 的 Swift Package 命令行插件

注意:本文中,我扩展地使用了术语 Mock,因为它与 Sourcery 模板使用的术语一致。...() } } 上面的文件(AutoMockable.generated.swift)包含了你对mock的期望:使用空方法实现与目标协议的一致性,以及检查是否用了这些协议方法的一组变量。...怎么使用 Swift package 运行 Sourcery? 至此你可能在想如何以及怎样 Swift package 运行 Sourcery。...好吧,让我们来看看 Xcode 14 中会出现什么,你会明白为什么我会提倡编写插件。 Xcode 这是运行命令插件最令人兴奋的方式,但不幸的是,它仅在 Xcode 14 可用。...如果你正好在使用 Xcode 14,你可以通过文件资源管理器右键单击包,从列表中找到要执行的插件,然后单击它来执行包的任何命令。 下一步 这是插件的初始实现。我将研究如何改进它,使它更加健壮。

1.1K20

成为一名优秀 Swift 开发人员的 10 个小技巧

使用 Protocol Protocol Swift 可以做很多事情。使用协议,我们可以设计软件组件的行为,使其符合特定的实现。...使用标签来分割和管理代码非常重要,可以代码快速导航。Xcode 11 右侧有一个代码导航器,基于此可以更频繁地使用标记。 4....保证 UI 关键组件可见并在顶部输入 有时界面会很有挑战性,特别是集成了许多功能的应用程序上。幸运的是,我有一位 UI/UX 专家与我一起工作,为我提供了很多有关如何正确操作的建议。...事件操作 sender 参数非常有用 最后一个技巧是使用 sender 参数。每个响应事件的方法或选择器都可以知道是谁触发了事件。...本文中,我将重点更多地放在Swift功能上,以提高代码效率并传递Swift机制的优点。我提供了一些简单的示例,说明每个iOS应用程序和开发人员应关注的重点。 - EOF -

2.2K40
领券