问题标签 [swift-class]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
203 浏览

ios - 什么时候在 swift 中使用类而不是结构?哪种设计模式是 Swift 中最好的面向协议编程或面向对象编程?

我知道这个问题可以被认为是“太宽泛”,但是如果一些专家可以给我关于这个问题的想法或指导,那么决定我应该使用哪种设计范式会很有帮助?

我在OOP中创建了许多项目,当我观看并通过POP时,我了解到我们可以通过将类替换为Struct 和 Protocol的组合来实现类可以做的事情。

当我浏览 WWDC 活动视频时,他们引用了“不要从课堂开始,从协议开始”,我还浏览了示例和教程

但是,何时使用 Struct 或类还不是很清楚。有时我们需要使用 Class。

为了更详细地说明这个问题,

考虑一个示例应用程序:我必须在其中调用 Web 服务、获取数据、将它们转换为模型、在 UI 中绑定它们。我们在 iOS 中开发的基本简单应用程序。那么对于这个我应该使用什么方法?

为了澄清我的理解,我还浏览了开源 swift 应用程序源代码,但在大多数情况下,他们都使用了这些类。

所以在哪些情况下我们应该使用 **Classes而不是Struct 和 Protocol。?**

据我所知,当我们处理多线程时,POP 非常有助于减少重复代码并使代码无错误。

如果有人可以帮助我更清楚地理解这一点,那将非常有帮助。

如评论中所述(感谢您提供此链接答案为我提供了有关 Struct 和 Swift 的足够信息。

但我的另一部分问题是,如果任何开发人员试图快速开发应用程序,应该使用哪种设计模式。

我浏览了很多开源和教程,我发现所有地方都使用了类。更多的指导将对这个主题非常有帮助。

0 投票
1 回答
75 浏览

swift - How to use multiple subclasses for function parameter

Say I have 2 subclasses of a class but would like to pass either of those subclasses to a function and determine its type within the function how would that be done?

0 投票
1 回答
537 浏览

ios - JSON 写入错误中的类型无效,尝试通过 JSON 将自定义类发送到 .NET Web 服务

我正在尝试将数据发送到接受三个类型为(字符串、字符串、QBUser 类)的参数的 .NET Web 服务。在 Javascript 中,我会像这样以 JSON 格式发送参数:

我以前从未遇到过该方法的任何问题,并且 .NET 将能够将其直接分类到服务器上的类对象中。使用 Swift,到目前为止,我已经成功地发送了书中几乎所有类型的 JSON,但是我在发送自定义类/结构作为参数时遇到了问题。这是我当前的代码:

控制台显示的错误如下:

QBUUser 类不是 NSString、NSNumber、NSArray、NSDictionary 或 NSNull 的实例,所以我一直不知道如何将它传递给服务器。

有没有办法在尝试发送之前将 QBUUser 类转换为上面列出的任何对象类型?我试图在类上运行一个循环,那是一个完全不同的锤子包,但得到了一些关于不能 AnyHashable over Array Literal 或类似的错误。有没有更好的方法我还没有发现?

参数必须以这种方式,所以我被困在那里。我只需要将类发送到另一端,因为它本质上只是在键/值对中。

这是控制台中打印的类的样子:

0 投票
3 回答
550 浏览

ios - 快速访问类实例

我有一个 Graph 类,它是一个 UIView,我在里面初始化它mainVC.swift

现在我想访问我在 MainVC 中在不同类中创建的类实例内部的函数(以在 TableView 中填充数据)。

var g : Graph = MainVC.graph返回“实例成员图不能在 MainVC 类型上使用”我也尝试过使用静态变量,但出现错误。

0 投票
1 回答
29 浏览

swift - Swift 类继承输出说明

在下面的代码中,为什么要myRide.drive()打印一个类 Car而不是“Driving at 200”?

我知道该类Futurecar是从汽车类继承的。谢谢!

0 投票
1 回答
20 浏览

swift3 - 我的代码库中的控制器 swift 被定义为结构而不是类

我来自 Objc 背景和 swift 新手。

这个注释是什么意思“///以静态方式使用”

我真的需要这个 init() 吗?

在整个代码库中我没有写RecentItemsController(),那为什么需要这个构造函数定义呢?

0 投票
2 回答
1085 浏览

swift - 单例模式的快速继承?

让这个类从不直接使用,只继承:

我如何default在这里定义一个通用的静态单例?- 所以我可以:

我唯一能想到的就是创建一个protocol需要实现FooApi的内容。BarApi但这似乎不是最理想的,宁愿写一个像这样的实现:

0 投票
1 回答
109 浏览

swift - 如何使用类扩展来覆盖协议扩展?

假设我有一个颜色模型:

在我的视图文件中,我向我的颜色模型添加了一些视图细节。这些细节不是特定于模型的,而是特定于视图的。

现在,当我在视图文件中使用我的颜色模型时,我希望我UnknownColor的 s 将自己表示为"#000",但当UnknownColor被转换为时,情况并非如此Color

我想避免对 进行公然的类型检查UnknownColor,所以这样的解决方案并不理想:

我想不惜一切代价避免对颜色模型进行进一步的更改。

可能有许多Color想要使用的协议实现,Color.representation因此更改extension Colortoextension KnownColor不是一种选择。

有没有办法可以重组我的代码,以便在实际是UnknownColor.representation时使用?ColorUnknownColor

0 投票
2 回答
279 浏览

swift - 来自自定义类的 Swift addChild

我有个问题。

我制作了 swift 自定义类 test.swift 并希望将这个类中的精灵添加到 GameScene.swift

这是我的自定义类

在 GameScene 中,我将此函数称为

但是精灵没有显示在应用程序中,我没有看到任何错误。

如果我直接在 GameScene 中复制该功能,它就可以工作。

谁能帮助我我做错了什么?

非常感谢

0 投票
1 回答
267 浏览

swift - Swift 4:如何用一行中的值初始化一个类?

我在 Swift 4 中有一个简单的类,如下所示:

我想(在一行中)用这个对象的一个​​实例填充一个变量。

我试着这样做:

但这不起作用。我究竟做错了什么?

另请注意,这是:

作品。