Swift UIDevice.currentDevice() 未编译

Swift UIDevice.currentDevice() not compiling

我有一个 swift 项目,我想在其中检索设备名称并显示在 UITableViewCell.

中 但是当我想在

中调用UIDevice.currentDevice()
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell

编译器失败并显示:

Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1

The following build commands failed:
CompileSwift normal arm64 "path to project folder"/custom_tableview_controller.swift
CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler (2 failures)


尴尬的事情是在任何其他文件中调用 UIDevice.currentDevice() 而不是我的 custom_tableview_controller.swift 文件正在运行。

附加信息:
- Xcode 6.4(6E35b)
-调试

这也让我发疯。我无法修复它。作为解决方法,我制作了一个 Objective-C class ,它只子类 UIDevice。我的 class 是 AWDevice。在 Swift 中,编译器对 AWDevice.currentDevice()

很满意

这真是奇怪。

我在 Swift 的框架中为获取 UIDevice 创建了它:

创建Obj-cHeader.h并添加

#import <UIKit/UIKit.h>

/**
 *  Static Current Device
 *  @note Can't get UIDevice CurrentDevice in Swift, Hack with obj-c
 *
 *  @return UIDevice
 */
static UIDevice* Device() { return [UIDevice currentDevice]; }

在您的目标框架 -> 构建阶段中执行此操作:

在你的目标 Framework.h 添加:

#import <BSStaticObjc.h>

现在Swift调用方法

Device()