小编jfl*_*fla的帖子

在swift中获取用户可读的类名(在objc NSStringFromClass中很好)

在Swift中是否有一个等效的NSStringFromClass,它提供了类名的用户可读版本?我试图将它与我创建的本机Swift类一起使用,但正如您所看到的,结果似乎是编译器类名的内部表示:

println(NSStringFromClass(MyClass.self))
Run Code Online (Sandbox Code Playgroud)

结果:

_TtC5test7MyClass
Run Code Online (Sandbox Code Playgroud)

我已经尝试将@objc属性添加到类中,并使其成为NSObject的子类,但它没有任何区别.我发现如果我用同名的Objective-C类替换MyClass,并在桥接头中导入它,它会给我'MyClass',但这不是必需的.

另一种选择是为此制定一个协议,我想以这种方式使用的每个类必须符合:

protocol Nameable {
    class var className: String { get }
}
Run Code Online (Sandbox Code Playgroud)

但是,在语言中使用内置方法更容易.

cocoa-touch swift

29
推荐指数
5
解决办法
2万
查看次数

循环镜头,并使用每个镜头和设置

这是我一直在处理的一些代码的版本,删除了细节.希望很清楚我正在尝试做什么,但如果没有,我可以澄清.我很擅长使用镜头,所涉及的复杂类型往往使它们看起来比它们的价值更麻烦.

-- some data type
type AType = ...

data Thing = Th { _v, _w, _x :: AType, _otherStuff :: ... }

makeLenses ''Thing

-- some operation that can be performed on corresponding x or w or v values in two Things.
f :: AType -> AType -> AType
f = ...

-- apply f to the corresponding v, and w, and x values in a and b; then store each result in the respective field of a, leaving …
Run Code Online (Sandbox Code Playgroud)

haskell haskell-lens

2
推荐指数
1
解决办法
73
查看次数

标签 统计

cocoa-touch ×1

haskell ×1

haskell-lens ×1

swift ×1