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

Swift 周报 第三十八期

这是一个示例:它显示了一个测试函数,使用 @Test 表示,其中包含两个特征:自定义显示名称和决定测试是否应运行的条件。...讨论编写 TCP 客户端应用程序的推荐方法是什么?[11] 我需要为 TCP/IP 上的自定义专有协议编写一个客户端。我希望它能够在 macOS、iOS 和 Linux 上使用。推荐的方法是什么?...我不确定这是否是“正确”的处理方式,但它足以让它在我正在构建的应用程序中顺利运行。 你可能会考虑由 IBM 开发并在 macOS、iOS 和 Linux 上运行的 BlueSocket。...讨论协议扩展可以定义类 API 覆盖吗?...[13] 我有几个符合协议的 UIViewController 子类(它们不共享相同的父类)。我想添加几个 UIViewController API 重写的默认实现,以避免在每个子类中重写它们。

24430

使用github项目白嫖正版JetBrains

简单来说需要符合以下规则和标准即可: 符合开源定义,并拥有与项目相关的开源许可证(apache2.0、MIT协议等) 项目的源代码应该是公开的 定期开发:项目每个月都应该有程序代码提交 项目内容限定为一个软件...,如框架、库、插件或应用程序 非商业性质项目 仅提供免费版本的软件,不提供任何与项目相关的商业服务(不能在项目中引导或者收费) 二、github与项目配置 1.项目配置 这里创建github项目不做赘述...,项目中可以添加一些工具类,或者把个人的demo项目搬过来也行,然后对项目做一些配置来符合审核标准。...简单点一句话描述也不是不可以: 设置开源协议 在项目中创建新文件: 然后输入文件名为LISENCE,并且选择从模板创建。 选择Apache 2.0或者MIT协议模板即可。...四、使用JetBrains许可证 1.查看与下载 大概一个周的时间,会收到JetBrains官方回复的邮件,可能是开源规则和标准没有理解到位,我收到如下邮件: 意思就是,你的项目从创建到现在少于6个月,

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

    蘑菇街、滴滴、淘宝、微信的组件化架构解析,附源码Demo和PDF

    整编:微信公众号,搜云库技术团队,ID:souyunku 示例代码 创建 MGJUserImpl类当做 User组件对外公开的类,并在 MGJComponentProtocol.h中定义 MGJUserProtocol...对于核心层和基础层的划分,可以以是否涉及业务、是否涉及同级组件间通信、是否经常改动为参照点。如果符合这几点则放在核心层,如果不符合则放在基础层。...代理方法 在项目中经常会用到代理模式传值,代理模式在 iOS中主要分为三部分,协议、代理方、委托方三部分。 ?...通过 iOS自带 UIWebView创建一个 H5页面后, H5可以通过调用下面的 JS函数和 Native通信。调用时可以传入新的 URL,这个 URL可以设置为 URLRouter的 URL。...*)dict; @end 我公司持久化方案用的是 CoreData,所有模型的定义都在 CoreData组件中,则不需要再单独创建一个模型组件。

    2.9K30

    Swift 中的 Sendable 和 @Sendable 闭包

    Sendable协议和闭包表明那些传递的值的公共API是否线程安全的向编译器传递了值。当没有公共修改器、有内部锁定系统或修改器实现了与值类型一样的复制写入时,公共API可以安全地跨并发域使用。...标准库中的许多类型已经支持了Sendable协议,消除了对许多类型添加一致性的要求。由于标准库的支持,编译器可以为你的自定义类型创建隐式一致性。...例如,整型支持该协议: extension Int: Sendable {} 一旦我们创建了一个具有Int类型的单一属性的值类型结构体,我们就隐式地得到了对Sendable协议的支持。...同样的问题发生在我们想要使一个可变的非最终类遵守Sendable协议时: 可变的非最终类无法遵守 Sendable 协议 由于该类是非最终的,我们无法符合Sendable协议的要求,因为我们不确定其他类是否会继承...然而,有些警告是你无法控制的,因为是外部模块触发了它们。在我的例子中,我有一个与SWHighlight有关的警告,它不符合Sendable,而苹果在他们的SharedWithYou框架中定义了它。

    1.5K30

    架构之路 (七) —— iOS App的SOLID原则(一)

    所有 Core Data 设置都在那里发生,这听起来根本不像是一个单一的职责。 如果您想在不同的项目中重用相同的 Core Data 设置,您会发现自己使用的是代码片段而不是整个文件。...删除它们并在 Storage 组中创建一个名为 Persistence.swift 的新 Swift文件。...: ExpenseModelProtocol { } 请注意,ExpenseModel 与协议具有相同的属性名称,因此您只需添加一个扩展即可符合该协议。...您将创建一个抽象类,而不是创建一个具体实现符合的协议,更具体的实现需要子类化该抽象类。 它实现了相同的目标:您可以轻松地交换底层实现,而无需更改任何视图。...无论您是否了解基本的 iOS 设计模式,刷新您对它们的内存总是好的。 我们的 Fundamental iOS Design Patterns tutorial 可以提供帮助。

    4.7K10

    Swift 周报 第三十期

    你还可以通过同播共享,邀请朋友一起观看。 现在,符合条件的开发者可以开始报名参加活动了。...回答 在没有 Realm 库的情况下,您是否能够读取 Realm 数据库文件的内容?否则,您必须将 Realm 作为依赖项保留,直到您的用户迁移完毕。...创建自定义集合类型时,PermutableCollection 协议在任何强制元素唯一性和/或身份的有序集合中都是首选。...我在一个新项目中使用单元测试和 measureBlock 以及在 swift-foundation 中使用 JSONEncoderTests 对其进行了测试。...它展示了如何定义颜色数组、使用标准和自定义起点和终点,以及设置坐标以改进铅笔对象上的颜色笔尖。本文还包括用于创建具有各种起点终点组合的不同线性渐变的示例代码。

    25820

    我庆幸果断放弃了SwiftUI:它还不够成熟

    新框架使用声明性范例,让开发者用更少的代码编写相同的 UI。 SwiftUI 的愿景是降低开发 iOS 门槛,吸引更多开发者、丰富 iOS 的业态。...这是个宝贵的机会,能让我认真体验一把 SwiftUI 并探索其内部工作原理。 起初项目工作良好,我对 SwiftUI 的表现可以说非常满意,我甚至创建了自己的修改器,以便更轻松地显示警报消息。...所以,我打算继续探索。 越来越慢 在实现了第一个检查器之后,我开始研究另一个主题:Sprite 资产编辑器。利用这款工具,我可以用多个 sprite 拼接成复杂的资产,再最终为它们制作动画。...我需要为每个上下文创建一个视图,这些视图同时又是其他视图的「子视图」,然后把需要的数据传递给特定视图。...这可以说是压死骆驼的最后一根稻草了,我决定放弃 SwiftUI,继续用 AppKit。 总    结 其实没能在项目中用到 SwiftUI,会让我感觉有点遗憾。

    5.1K20

    Sendable 和 @Sendable 闭包代码实例详解

    Sendable协议和闭包表明那些传递的值的公共API是否线程安全的向编译器传递了值。当没有公共修改器、有内部锁定系统或修改器实现了与值类型一样的复制写入时,公共API可以安全地跨并发域使用。...标准库中的许多类型已经支持了Sendable协议,消除了对许多类型添加一致性的要求。由于标准库的支持,编译器可以为你的自定义类型创建隐式一致性。...同样的问题发生在我们想要使一个可变的非最终类遵守Sendable协议时: 可变的非最终类无法遵守 Sendable 协议 由于该类是非最终的,我们无法符合Sendable协议的要求,因为我们不确定其他类是否会继承...然而,有些警告是你无法控制的,因为是外部模块触发了它们。在我的例子中,我有一个与SWHighlight有关的警告,它不符合Sendable,而苹果在他们的SharedWithYou框架中定义了它。...来自这些库的代码仍然有可能发生数据竞赛。如果你正在使用这些框架的实例,你需要考虑实例是否真的是线程安全的。

    1.4K20

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

    使用 Protocol Protocol 在 Swift 中可以做很多事情。使用协议,我们可以设计软件组件的行为,使其符合特定的实现。...为项目选择正确的库是一项有意思的工作,大多数情况下,使用基本库就正确的做法。这可以让你专注于特定应用程序的特定功能,而不是在常见的功能上浪费时间。...使用扩展并合理使用它们来创建公共库 我很喜欢 Swift 扩展。在使用 Objective-C 时,我总是不情愿地使用继承。当然这并不总是错误的,正确的使用子类也不会出错。...在常见情况下,请考虑这样一个场景,使用具有相似行为的多个按钮,来处理相同的操作。...只需要将所有 UIButton 连接到相同的 @IBAction,然后使用发送方找出触发了该事件中的哪一个,并为该特定行为编写正确的实现即可。

    2.3K40

    【视频监控国标GBT28181】 如何支持TCP和UDP接入

    视频监控国标GB/T28181支持TCP和UDP接入的方式主要依赖于该标准中定义的通信协议和传输机制。...不过,我可以提供一个概念性的示例和步骤,这些步骤将指导你如何在一个SIP应用中同时设置TCP和UDP监听点。请注意,以下示例可能需要根据你的具体SIP库实现进行调整。...sipStack.createSipProvider(tcpListeningPoint); tcpProvider.addSipListener(new MySipListener()); // 可以使用相同的监听器...错误处理:在创建SIP栈、监听点或提供者时,可能会抛出异常。确保你的代码能够妥善处理这些异常。 安全性:如果你的SIP应用需要处理敏感信息,请确保你的实现符合相关的安全标准和最佳实践。...库依赖:确保你的项目中包含了正确的JAIN SIP库依赖。如果你使用的是Maven或Gradle等构建工具,你可以在项目的构建文件中添加相应的依赖项。

    57610

    WWDC 2018年十大视频评论

    除了支持所有主要的第三方模型库,Create ML还可以通过定义问题,培训自己的数据和部署自己的模型来创建自己的模型。量化的进一步增强使得执行速度和更小的模型尺寸成为可能。...在Create ML的工作流程中,您可以使用LiveView培训师定义问题,收集一些分类的样本数据并在Playground文件中训练您的模型。将训练数据拖放到视图中。训练完成后,您将保存新模型。...条件一致性扩展或增加了可符合它的协议和类型的可组合性。 Swift还支持面向对象的编程。...TJ Usiyan概述了更高级的Playground功能。特别是,新的自定义游乐场显示转换器允许您在实时REPL类似的结果内联视图中显示您自己的自定义值。他还强调了如何在项目中支持自己的框架。...将部分移动到没有其他依赖关系的codegen目标可以在时间轴中更早地移动构建任务,并促进并行构建。 运行脚本阶段可让您自定义构建过程。您可以将脚本放入正文或创建对项目中另一个脚本的引用。

    3.4K20

    GPUImage框架_文档翻译

    在核心图像对比(iOS 5的一部分),GPUImage允许你添加自己的自定义过滤器,支持部署到iOS 4,并有一个简单的接口。然而,它目前缺乏Core Image的一些更高级的特性,如人脸检测。)...我创建了一个示例项目来执行此操作: (然而,在GPU上运行自定义过滤器需要大量的代码来设置和维护这些过滤器的OpenGL ES 2渲染目标。...我创建了一个示例项目来做这件事:) 项目预览地址: https://github.com/BradLarson/GPUImage 并发现我必须在其创建中编写很多样板代码。...链中的过滤器和其他后续元素符合GPUImageInput协议,该协议允许它们从链中的前一个链接接收提供或处理的纹理并对其执行某些操作。...(链中的过滤器和其他随后的元素符合GPUImageInput协议,这让他们以提供或加工纹理从链中的上一个链接,用它做什么。

    95910

    Swift 周报 第三十三期

    在此列表中包含内部导入以及支持导入 C 和 C++ 类型而不间接公开其 ABI 是否也有意义,以便允许包在内部使用 C++ 互操作而不要求依赖项了解它?...讨论将协议添加到同名模块 提问: 我有一个名为 HTML 的模块,其中包含同名的类型 HTML。...首先创建一个名为 "Fonts" 的 Swift Package ,并在其中添加自定义字体资源。然后添加 SwiftGen 插件来生成加载字体所需的代码。...作者分享了自己在每个项目中都使用该 API 并构建自定义格式化逻辑的经验。博客中详细讲解了 FormatStyle 协议以及如何创建符合该协议的自定义格式样式。.../66115 [8] 轻量化的 iOS 动画框架实现: https://juejin.cn/post/7252586606091419708/ [9] 使用 Swift Package 插件将自定义字体加载到您的应用程序中

    35220

    使用 Swift Package 插件生成代码

    前言 不久前,我正在工作中开发一项新服务,该服务由 Swift Package 组成,该 Package 公开了一个类似于Decodable协议,供我们应用程序的其余部分使用。...实施细节 我开始了一项任务,即创建一个构建工具插件,与 Xcode 14 引入的命令插件不同,该插件可以任意运行并依赖用户输入,作为Swift软件包构建过程的一部分运行。...这创建了两个目标,一个是包含Fetchable协议定义和符合该定义的类型的实现代码,另一个是应用插件为此类类型生成单元测试的测试目标。...请注意,这个文件可以随心所欲地命名,我倾向于以与我在Package.swift中创建的目标相同的方式命名它。...这意味着任何嵌套的符合Fetchable协议的类型都将被测试,只是外部模型。 给定此输入并在主目标上运行测试,生成并运行XCTestCase,其中包含符合Fetchable协议的两种类型的测试。

    2.3K20

    Ask Apple 2022 中与 Core Data 有关的问答 (下)

    主程序与扩展程序数据同步Q:我有一个主应用程序和一个扩展程序,它们都读取相同的 Core Data 数据库。但是,当我在主应用程序中进行更改时,我的扩展程序在重新启动之前不会看到更改。...通过创建两个单独的属性,一个包含纯文本字符串,另一个包含属性字符串的 Transformable 数据是否为最好的方法?是否有另一种更好的方式可以不通过两个属性来减少存储的数据量?...如果我将其标记为非可选,则它应该需要默认值,并且托管属性应始终是非可选的。我们是否可以期待将来( 至少在新项目中 )做出这样的修正?...,需要让我的 NSManagedObjects 中符合 Codable 协议( 猜测是想对 Path 进行持久化 )。...,URL 符合 Codable 协议,满足对 Path 进行持久化的需求 )。

    3.3K20

    WWV 2018年十大必看视频

    除了支持所有主要的第三方模型库,Create ML还可以通过定义问题,培训自己的数据和部署自己的模型来创建自己的模型。量化的进一步增强使得执行速度和更小的模型尺寸成为可能。...在Create ML的工作流程中,您可以使用LiveView培训师定义问题,收集一些分类的样本数据并在Playground文件中训练您的模型。将训练数据拖放到视图中。训练完成后,您将保存新模型。...条件一致性扩展或增加了可符合它的协议和类型的可组合性。 Swift还支持面向对象的编程。...他还强调了如何在项目中支持自己的框架。使用Xcode工作区,您可以导入自己的框架并添加一个操场来使用它们。 Playgrounds不仅仅是为了好玩。...运行脚本阶段可让您自定义构建过程。您可以将脚本放入正文或创建对项目中另一个脚本的引用。例如,如果将脚本放入外部文件中,则在Xcode 10“文件列表”中,它是只读的,不会被编译。

    2.9K20

    Apple无线生态系统安全性指南

    然后,该工具可以递归搜索那些二进制文件及其依赖项(框架和库),以查找相同或其他的字符串和符号。最后,用户收到二进制文件和函数的初始候选列表以进行进一步分析。...在内部,该工具将lldb调试器附加到关系上,并在各自的发送和接收函数处使用断点来打印所有交换的消息。...BLE广播使用已经描述过的Apple的自定义框架结构,并利用制造商数据添加自定义字段。这些字段被编码为TLV8结构,这样一个帧就可以包含多个字段。...;3)接收器可以以恒定的时间告诉值x是否位于序列中的y之前或之后;4)发送者和接收者只需要共享一个秘密;5)给定序列中的任何值,对手将无法猜测序列的下一项或上一项。...图片本研究在办公室环境中进行了一项实验,以演示问题和攻击并在上图中显示跟踪iOS 13设备的示例性结果。该图描绘了该设备发出AWDL帧的时间(顶栏)。

    78931

    Appium面试题

    Appium ⽀持多平台测试,这意味着它可以在 iOS 移动、Android 移动和 Windows 桌⾯应⽤程序等多个平台上执⾏相同的测试⽤例。 Appium 允许测试脚本与其他测试脚本并⾏运⾏。...它是⼀种⾮功能测试形式,可确保移动应⽤程序在各种操作系统、应⽤程序、设备、内部硬件规格和⽹络条件下的功能。兼容性测试确定移动应⽤程序是否与各种操作系统和版本兼容。...测试脚本由测试⼈员编写并在设备或模拟器上运⾏。Appium 为各种平台(如 Android 和 iOS)创建和管理许多 webdriver 会话。...18、区分开源工具、供应商工具和内部工具? 开源⼯具:开源⼯具是免费使⽤的框架和应⽤程序。...可通过互联⽹获得这些⼯具的技术⽀持。 内部⼯具:内部⼯具是公司为⾃⼰使⽤和⾃我开发⽽开发的⼯具。它们永远不会提供给普通民众。 19、您认为自动化测试可以完全替代手动软件测试吗?

    4.5K10

    Ask Apple 2022 与 SwiftUI 有关的问答(下)

    阅读 The SwiftUI Layout Protocol [11]了解如何创建自定义布局。创建从底部开始的滚动视图Q:我如何实现一个在底部对齐的滚动视图,在 macOS 上会不会有糟糕的性能?...将背景扩展到安全区域Q:如果我有一个自定义的容器类型,可以接受一个顶部和底部的视图,是否有办法让 API 的调用者将所提供的视图的背景扩展到安全区域内,同时将内容( 如文本或按钮 )保留在安全区域内?...deprecated 版本是 Swift 框架作者的一种沟通方式,即一个 API 不应该在新项目中使用,但在现有项目中继续使用也无妨。...在动画不复杂的情况下,可以通过创建一个符合 Animatable 协议的 ViewModifier 来同步观察动画的进程。详情请参阅 推文[17]、代码[18] 。...Too complex to type checkQ:我在 iOS 14 SwiftUI 中遇到一个问题,我试图有条件地显示 3 个符合 Shape 协议的对象中的一个。

    14.9K30
    领券