gpt4 book ai didi

ios - 改进冗余 if else 查询(也许使用设计模式?)并减少全局变量?

转载 作者:行者123 更新时间:2023-11-29 01:20:53 25 4
gpt4 key购买 nike

我的代码工作正常,但对我来说似乎非常业余。

1)例如:我正在使用蓝牙,我总是要检查是否有设备以及用户是否有连接。

 if isThereADevice != nil && isThereADevice.connected() {
//do stuff via bluetooth
} else {
//do an alternative
}

这个构造在我的“项目”中存在 > 25。找到更好的解决方案会很酷,但我的编码经验不是很好。我很乐意获得一些信息、代码片段或想法,我可以用谷歌搜索 :)

2)第二个愚蠢的事情是,我有很多全局变量。这看起来风格不太好。

例如:在游戏开始时,用户选择了一 block 石头。这 block 石头有一个ID。总的来说,我有五个 UIViewController 并且在每个 UIViewController 中我都需要这个 ID。

我刚刚创建了一个 Globals.swift 并定义:

var globalID: String = "default"

与此同时,我有 > 20 个全局变量,例如时间、回合、一些对象……我什么时候在 Swift 中使用全局变量?我用它们吗?我的 ID 问题有什么解决方案?

最佳答案

如果没有更多的上下文,很难对您的问题给出可靠的答案,但希望我接下来要说的能引导您走上正确的道路。

听起来您有一个蓝牙服务,其中需要一种且只有一种类型。这可能是使用单例模式来表示蓝牙服务的好机会。您还可以使用委托(delegate)模式与应用程序中各种实体的蓝牙服务进行交互。

更多信息:

就 iOS 中的全局范围而言,请避免使用它。结构旨在表示 Swift 中的值,使用它们来存储您的值!

例如:

struct UIConstants {
var color = UIColor.blackColor()
var height: CGFloat = 10
}

您现在可以在任何地方使用它:

class MyView: UIView {

let constants = UIConstants()

init(frame: CGRect) {
super.init(frame: frame)

self.backgroundColor = constants.color
}
}

这样一来,如果您需要将更改应用到应用程序中的所有实体,这些值就可以在一个位置重复使用和更改。

希望这对您有所帮助!

关于ios - 改进冗余 if else 查询(也许使用设计模式?)并减少全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34614938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com