问题标签 [rawrepresentable]

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 投票
2 回答
841 浏览

swift - 用于与 String 相互转换的事物的 Swift 协议

我想要一个GenericThing带有模板参数的模板参数,它是可以明智地转换为字符串和从字符串转换的任何类型。

然后我应该能够使用GenericThing任何具有合理编码作为字符串的类型。例如,它应该适用于Int, String(嗯,dah),理想情况下,它应该适用于任何本身将转换为字符串和从字符串转换的RawRepresentable地方。RawValue

例子:

我看不出如何轻松做到这一点。

我希望我可以使用LosslessStringConvertible而不是我的 make up ConvertsToAndFromString

我试过这个,它适用于Int等等。但它不适用于Tubbies. 我看不到让所有RawRepresentable地方RawValue: LosslessStringConvertible也符合LosslessStringConvertible.

0 投票
1 回答
120 浏览

swift - Objective-C 枚举符合 RawRepresentable

对此我有任何经验,例如以下用 objc 编写的枚举

当我试图符合 RawRepresentable 时,编译器崩溃。我唯一可以想象的是 RawRepresentable 仅适用于 swift 枚举。

有任何想法吗?

0 投票
1 回答
273 浏览

ios - 如何使用 CustomStringConvertible 和 RawRepresentable 组合类型指定函数参数的类型?

enum我想要一个通用函数,它可以通过提供枚举类型和Int原始值来实例化我拥有的几种不同类型的对象。这些enums 也是CustomStringConvertible.

我试过这个:

这导致3个错误:

  • 非协议、非类类型“CustomStringConvertible.Type”不能在协议约束类型中使用
  • 非协议、非类类型“RawRepresentable.Type”不能在协议约束类型中使用
  • 协议“RawRepresentable”只能用作通用约束,因为它具有 Self 或关联的类型要求

现在忘记'CustomStringConvertible',我也试过:

但是,尽管代码完成表明了这一点,但会导致有关以下内容的错误T.init(rawValue:)

  • 无法使用类型为“(rawValue:Int)”的参数列表调用“init”

我怎样才能形成这样的工作通用功能?

0 投票
1 回答
100 浏览

ios - 协议“RawRepresentable”要求“init(rawValue:)”在 iOS 13.0.0 及更高版本中可用

我目前正在构建一个框架,并希望使 SwiftUI 符合仅适用于 iOS 14ColorRawRepresentable协议。我有以下代码:

但是,这会导致两个类似的错误:

这不可能吗?我可以将代码修改为:

这修复了错误,但调用fatalError.

感谢您的任何帮助!

0 投票
0 回答
42 浏览

swift - 扩展 AppStorage 以兼容 Int32

我想使用 AppStorage 属性包装器将 CLAuthorizationStatus 存储在用户默认值中,这样我就可以在整个应用程序中将它作为一个简单的变量进行访问,而不是每次都通过 CLLocationManager 访问授权状态。问题是这个 Enum rawValue 类型是一个 Int32(而不是像 UNAuthorizationStatus 那样的 Int),所以下面的方法不起作用:

抛出:候选人要求类型“CLAuthorizationStatus.RawValue”(又名“Int32”)和“Int”是等效的(要求指定为“Value.RawValue”==“Int”)(SwiftUI.AppStorage)

我尝试扩展 AppStorage 以包含一个带有 RawRepresentable 的初始化程序,该初始化程序具有 Int32 作为 rawValue 但我找不到要包含在其中的内容以使其工作。

提前致谢。

0 投票
2 回答
64 浏览

swift - Swift - 为什么 String 不符合 RawRepresentable?

我正在学习 Swift,但无法理解为什么这段代码是正确的:

但这一个是不正确的,并向我显示错误

我浏览Swift.String了来源,没有找到rawValue声明。它在 Swift 中是如何工作的?是String“自动”符合的内置类型RawRepresentable,但所有其他类型都必须显式声明其符合性?