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

iOS 9 Storyboard 教程(二下)

当用户点击Cancel按钮的时候,这个控制器将会关闭并且不管你输了什么数据都不会保存.这个部分用unwind segue已经起作用了....segue引用,可以传递到这个方法.它用来往玩家数组里添加新的Player对象来作为数据源.然后它会告诉tableView添加了新的一行(在底部),因为tableView和它的数据源始终是同步的....Paste_Image.png 这很酷,不是吗?...依然在PlayerDetailsViewController.swift里,添加unwind segue 方法: @IBAction func unwindWithSelectedGame(segue:...还有一件事– 当你选择一个游戏的时候,返回到Add Player控制器,然后尝试再选择一个游戏,你之前选中的游戏应该会有一个对号标记.解决方案就是当你连线(segue)的时候,通过选中的游戏存储在PlayerDetailsViewController

2.2K10

【iOS 开发】Controller 之间使用代理传值

Controller 传值 控制器之间经常需要互相传递值,第一个控制器(简称 MasterVC)在通过 NavigationController Push 第二个控制器(简称 DetailVC)的时候,...而 DetailVC 在给 MasterVC 传递值的时候,比如设定 MasterVC 的 Title,却不能用同样的方式传值(试一下就知道了),而且因为我们要通过 NavigationController...返回原来的界面而不是 push 一个新的界面,所以也不能通过 segue 传值,解决方法我尝试了两种: 使用 static var 使用代理传值 使用 static var class MasterVC...animated: Bool) { MasterVC.text = "xxx" } } 这样虽然行得通,但是代码丑陋:类似 viewWillAppear 这样的方法,让人难以读懂,为什么这样的事情要在这个地方做...,而在之前的解决方案中,我们需要写十行 static var。

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

    Swift 项目 - Xib | StoryBoard 多人协作技巧

    Storyboard不利图片 在一个Storyboard中,大量的Controller控制器和Segue连线彰显着错综复杂的UI关系,使人望而生畏或者难以维护。...所有初始样式都是在属性面板中设置的值,通过 func setValue(_ value: Any?...答案是否定的,很早的版本,苹果就给出了上图中的解决方案。...这时可以全局搜素一下 在搜出来的结果中可以看到,是在Main.storyboard上绑定了HomeController,Test.swift文件中定义了该类,但是因为改名所以无法找到。...布局适配问题,98%这个数并不是随便给出的,很多人觉得达不到这个比例是因为对约束理解较少,还是按照以前的autolayoutMask的方式使用约束,因此很多布局问题还在用代码计算,可实际上约束功能十分强大,目前无法通过约束直接解决

    2.1K20

    Swift 周报 第三十八期

    这不是什么新鲜事,Swift 已经完全能够表达这种类型,因此我不断听到的“由于编译器复杂性而经常被拒绝的提案”显然也是非常错误的。...讨论编写 TCP 客户端应用程序的推荐方法是什么?[11] 我需要为 TCP/IP 上的自定义专有协议编写一个客户端。我希望它能够在 macOS、iOS 和 Linux 上使用。推荐的方法是什么?...通过单个通道读取处理程序(在 Swift-NIO 的情况下)感觉所有内容, 再次,就像我做错事一样。 有谁知道 Swift-NIO 类似的来回通信示例吗?或者我看错了方向?...我想添加几个 UIViewController API 重写的默认实现,以避免在每个子类中重写它们。无论如何要让这项工作成功吗?...最后,文章分享了常见的 Crash 类型及其解决方案,并总结了长期 Crash 治理的经验和收益。

    23430

    【iOS 开发】NSError ** 与 throws 的三个问题

    ,那么通过 error == nil 不就可以知道是否执行成功吗,为什么需要 BOOL 返回值,这是一个冗余的设计吗?...另外,基于 Objective-C 的语言特性,这里我们无法阻止调用者对 error 参数传递 nil,但是这个方法在这种情况下依然需要告知调用者是否执行成功,所以返回值是一个必要的设计。...上面那个方法在 Swift 中是这样的: func removeItem(atPath path: String) throws 没有返回值 Objective-C 中为了对外部创建的 NSError...但有一点需要注意,在这里我们只能获取到一个 error,我们却无法知道可以获取到一个什么样的 error,我们无法直接通过 API 知道,假如这里 removeItem 不成功,到底可能是因为什么样的原因而导致不成功...由于 try catch 是一种同步的语法,在异步的时候,我们还是只能通过 Error 或者 NSError 来判断执行是否成功。

    1.9K20

    【自问自答】关于 Swift 的几个疑问

    Swift 版本是:4.0.3。不同版本的 Swift,可能无法复现问题。 个人记录,仅供参考,不保证严格意义上的正确性。 swift 中,如何在函数内,声明 static 变量 ?...若方法的参数、属性类型为Swift特有、无法映射到Objective-C的类型(如Character、Tuple),则此方法、属性无法添加dynamic修饰(会编译错误) 参考: http://www.infoq.com...猜想: dynamic 是在用性能换灵活性.生产环境下,未来更可能的方案,可能是: 通过协议,约定必须实现的统计相关的方法 --> 通过单元测试,来保证遵循特定统计协议的类型,在特定的时机一定会调用协议规定的统计方法...如果是在模块B中,通过 extension 覆盖模块A的private 方法.然后在模块 C 中同时引入了模块 A 和 B,此时模块C中类似的函数调用,会是哪个模块的方法实现生效?...swift 模块中,能使用类似下面的类型初始化代码吗?

    1.4K60

    新广告引发不满,苹果也染上了“大厂病” | Swift 周报 issue 53

    在第五十二期周报时被拒绝。本期重新恢复审查。Swift论坛1) 讨论为什么 AsyncStream 会破坏结构化并发?...为什么要做这个改变投稿指出,在讨论过去的一个投稿中曾经探讨过 metatype keypaths,但最终被推荐作为未来方向。...在这种情况下,互斥体提供了一个标准化的解决方案来确保正确的同步。目前,Swift 缺乏互斥量的标准化实现,导致 Swift 程序中临时实现的激增。...Steve Canon(scanon) 解释说传递的数据必须匹配指定的布局,而 Tera 注意到 Metal 偏爱除了一个列外的四数倍的列数。...通过分析 SwiftData 和 SwiftUI 的闭源代码,发现了问题的根本原因,并提出了一个临时解决方案:在模型中添加一个非持久化的属性来存储枚举值,以解决枚举比较和 rawValue 比较无法使用的问题

    24332

    Apple 营收有望再创新高 | Swift 周报 issue 47

    其动机通过一个示例来说明,其中参与者直接使用自定义执行器,从而导致错误的参与者执行器假设。 该提案旨在允许检查通过并恢复隔离信息,即使 Swift 并发运行时无法证明但目标执行器可以证明这一点。...4) 讨论为什么不支持 var myArray: [weak MyClass]内容大概为什么不支持 var myArray: weak MyClass - 使用 Swift - Swift 论坛我认为...在 weak MyClass 中,如果其中一个引用被释放,会发生什么? 它会将自己从数组中删除吗? 当元素随机失效时,这可能会引起一些混乱。 它会像一个可选的并且变为零吗?...他们寻求澄清这种方法是否可以接受,或者是否有更好的解决方案可以在不违反任何规则的情况下实现预期结果。...把“被裁”说成“主动离职”算撒谎吗? 算,不诚实算适度美化而已不算,很正常欢迎在文末留言参与讨论。

    14032

    iOS 面向协议方式封装空白页功能

    嘿嘿,这个可以有,那我们接下来就来试试怎么通过协议的方式来避免上述情况,并且实现一行代码添加空白页功能 前言 如果对面向协议有疑问的同学可以看下我之前的两篇文章 iOS - Swift 面向协议编程...、定义功能方法中将delegate和source设置为了self ,而协议是无法遵守再次遵守其它协议的,那让什么来遵守对应的协议呢?...解决方案:拓展UIScrollView!!!有没有发现?...,非常地恰巧,我们定义的方法lxf_EmptyDataSet需要外界将UIScrollView传递进来,在DZNEmptyDataSet的数据源方法和代理方法也有scrollView。...可以使用Cocoapods的方式来安装使用 pod 'LXFProtocolTool' 我也将 iOS - Swift 面向协议编程(二) 中提及的通过协议便捷加载xib的功能也集成了进来。

    1.5K50

    Swift 周报 第三十四期

    : 苹果公司正在考虑在今年秋季推出新款 iPhone Pro 时提高其高端手机的价格,那么如果到时候新款 iPhone Pro 在国内的价格超过了一万元,你还会买吗?...而且,很多时候,多行表达式在 Unicode 数学符号中根本无法表示。例如,Unicode 中没有上标希腊字母。矩阵也是无法表示的。...有谁能解释这个错误的原因吗? 这两者不是等价的吗?...回答: 更有趣的是,通过传递到泛型上下文,可以这样做: enum PairEnum { case pair(first: Int, second: Int) } func apply(...话题讨论 苹果公司正在考虑在今年秋季推出新款 iPhone Pro 时提高其高端手机的价格,那么如果到时候新款 iPhone Pro 在国内的价格超过了一万元,你还会买吗?

    22840

    在 Swift图表中使用Foundation库中的测量类型

    如果我们简单地从测量值中提取,我们就会失去上下文,不知道用什么单位来创建测量值。这意味着,我们将无法正确格式化图表的标签来向用户表示单位。...虽然我们可以记住我们在创建测量时使用了小时hours,但这并不理想。例如,我们可以决定以后改变数据模型,以分钟为单位存储持续时间,或者数据可能来自其他地方,所以手动重构单位并不是一个完美的解决方案。...步行时间柱状图的截图,X轴上的标签显示为分钟数,但没有单位 显示带有测量单位的格式化标签 为了定制X轴上的标签,我们将使用chartXAxis(content:)修改器,并用传递给我们的值重构x轴的标记...AxisValueLabel在初始化器中接受一个LocalizedStringKey,它可以通过插值测量和指定其格式风格来构建。...我选择了缩小的格式和小数点后零位数作为数字样式,但你可以根据你的具体图表调整这些设置。 最后的结果是在X轴上显示以小时为单位的格式化持续时间。

    2.7K20

    SwiftUI 与 Core Data —— 安全地响应数据

    image-20221212090247999image-20221212090306573而且,开发者无法通过更改声明代码将该属性类型修改为 Int16? 。...事实上,在 Xcode 自带的 Core Data 模版中,就是这样使用的。image-20221212101526366但这确实是正确的使用方式吗?是否会有严重的安全隐患?...在 timestamp 对应的数据库字段有值的情况下,timestamp 一定会有值吗?是否会有 nil 的可能?...为已删除的托管对象实例提供正确的备选内容一定会有人对本节的题目感到奇怪,数据已经删除了,还需要提供什么信息?...save(context) }}通过 existingObject ,我们将确保只在数据有效的情况下才进行下一步的操作,如此可以避免操作已被删除的数据而造成的意外崩溃情况。

    3.3K20

    Swift 周报 第三十九期

    如果我当时观看 Activity Monitor,我的 CPU 的 swift-frontend 进程在此期间将保持在 100%。但除此之外似乎没有什么可疑的。...关于什么会导致这种巨大差异有什么想法吗? 回答 我刚刚发现并修复了 39 个案例,当模块中包含大量 Swift 文件时,我们会看到这种情况发生。(大量宏展开也可能发生)。...这是应该如何工作的吗?对于看似常见的用例来说,这似乎是一个极其繁琐的过程。我在这里错过了什么吗?...用户仍然可以将字符串文字直接传递给宏调用,但他们无法执行任何接近但不是文字的操作,例如 “hello”+“world”。...这不是一个完美的解决方案,但我可以理解,用户并不都希望为“这是一个文字吗”之类的事情编写相同的检查,因此最好让编译器在可能的情况下为您完成工作。

    26420

    Swift 中的热重载

    这种流程改进可以每天为您节省数小时的开发时间。我跟踪我的工作一个多月,对我来说,每天节省了 1-2 小时。...自从 Swift Playgrounds 存在以来,已经过去了八年,而且它们变得更好了,但它们可靠吗?人们是否在使用它们来推动开发? 以我的经验:并非如此。...SwiftUI 出现了,它是一项了不起的技术(尽管仍然存在错误),它引入了与 Playgrounds 非常相似的 Swift Previews 的想法,它们有什么好处吗?...毕竟,我的职业生涯是构建普通 Apple 解决方案无法解决的问题:从像 Sourcery 这样的语言扩展、像 Sourcery Pro 这样的 Xcode 改进,再到 LifetimeTracker 以及许多其他开源工具...如果您切换到我们的 TCA 分支(我们保持最新),你可以在 UI 和 TCA 层上使用 Inject 。 它有多可靠? 没有什么是完美的,但我已经使用它十多年了。

    2K20

    在 Swift 图表中使用 Foudation 库中的测量类型

    如果我们简单地从测量值中提取,我们就会失去上下文,不知道用什么单位来创建测量值。这意味着,我们将无法正确格式化图表的标签来向用户表示单位。...例如,我们可以决定以后改变数据模型,以分钟为单位存储持续时间,或者数据可能来自其他地方,所以手动重构单位并不是一个完美的解决方案。...Conformances of External Types[3]),如果 Swift Charts 在未来添加了这种一致性,它可能会被破坏。...AxisValueLabel在初始化器中接受一个LocalizedStringKey,它可以通过插值测量和指定其格式风格来构建。...我选择了缩小的格式和小数点后零位数作为数字样式,但你可以根据你的具体图表调整这些设置。 最后的结果是在X轴上显示以小时为单位的格式化持续时间。

    2.4K30

    Swift 面试题

    问题 Swift 中 Struct 和 Class 的区别 Swift 中 为什么 String、Array、Dictionary 用 Struct 实现 Swift 中写时复制的原理 Swift 中变量作用域有哪些...中 rebase和 merge 的区别,rebased的 commitID 会改变吗 SwiftUI 中 View 传值方式有哪些 什么情况下触发 layoutSubviews 答案 Swift 中...Swift 中 为什么 String、Array、Dictionary 用 Struct 实现 安全:值类型不可变,传递值类型实际上传递的是一份副本,不用担心函数内对值的修改影响到外部数据,有助于减少程序中的错误...(在一个.swift 中有多个类的情况下,就能体现出 fileprivate 和 private 的区别)。 internal是swift 文件的默认权限,在当前模块内可访问,模块外不能访问。...Swift中 Protocol 如何声明可空 optional MVP 的优点是什么 MVP 是 Model管理数据,View 负责展示,Presenter 负责管理业务逻辑,View 通过接口与 Presenter

    9110

    Swift 周报 第十六期

    话题讨论: 如果您年龄超过 35 岁被裁员,再入职时能接受降薪吗?...在中国大陆的 App Store 上暂不可用。 提案 通过的提案 SE-0375[2] 允许非可选非空参数传递给可选类型的参数 提案已通过。该提案已在十五期周报正在审查的提案模块做了详细介绍。...建议的解决方案: 建议修改 swift package-registry 指令和 registry 的配置并且加入 token authentication 的支持。...提议动机:在使用 Async[Throwing]Stream 一段时间后,我们发现一个常见的用法是将 continuation 和 Async[Throwing]Stream 传递到不同的地方。...建议的解决方案:为了填补这个不足,建议在 AsyncStream 和 AsyncThrowingStream 上添加一个新的静态方法 makeStream ,它返回 stream 和 continuation

    1.5K20

    Swift: 为什么要避免在结构体中使用闭包?

    我们都喜欢关闭,不是吗? 闭包可以简化iOS开发人员的工作。好吧,如果这使我们工作变得容易,那为什么我要避免在Swift结构中使用闭包呢? 原因是:内存泄漏和意外行为。 结构内存泄漏,可能吗?...那句话是真的吗?我们已经有很多问题了。因此,让我们回顾一下Swift中的内存管理基础知识。 Swift中的基本类型分为两类。...通常,在引用类型中会发生内存泄漏。在大多数情况下,它以循环引用(retain cycles)的形式出现。 因此,如果引用类型是导致内存泄漏的原因,那么我们可以将值类型用于所有情况。...由于闭包及其环境无法完全复制,属性speed的值被复制了,但是myNewCar的属性increaseSpeed在捕获的环境变量中引用了myCar的increaseSpeed和myCar的speed。...这就是为什么Swift结构中的闭包很危险的原因。 直接的解决方案是,避免在值类型中使用闭包。如果要使用它们,则应格外小心,否则可能会导致意外结果。

    1.8K20
    领券