我有一个实现Swift 4的结构Codable.是否有一种简单的内置方法将该结构编码为字典?
let struct = Foo(a: 1, b: 2)
let dict = something(struct)
// now dict is ["a": 1, "b": 2]
Run Code Online (Sandbox Code Playgroud) 与Apple的新设备相对应的CSS媒体查询是什么?我需要设置body's background-color来改变X的安全区域背景颜色.
我有一个扩展名:
public extension UIWindow {
override public func topMostController()->UIViewController? { ... }
}
Run Code Online (Sandbox Code Playgroud)
但是对于我,topMostController我得到了下一个错误:
Declarations in extensions cannot override yet error
Run Code Online (Sandbox Code Playgroud)
它适用于Swift 3.1,但对于Swift 4,我得到了这个错误.怎么修好?他们在Swift 4中有什么变化?
我正在浏览Apple的Vision API文档,我看到了几个与文本检测有关的类UIImages:
1) class VNDetectTextRectanglesRequest
看起来他们可以检测到角色,但我没有看到对角色做任何事情的方法.一旦你检测到了角色,你会如何将它们变成可被解释的东西NSLinguisticTagger?
这是一篇简短的概述Vision.
谢谢你的阅读.
我正在尝试将mi app升级到swift 4,但条形码阅读器无法正常工作.
我已经隔离了条形码阅读器代码,但仍然无法正常工作.相机可以正常工作但不会检测到条形码.
代码在swift 3 iOS 10上运行得很好.
这是完整的代码
import AVFoundation
import UIKit
class ViewController: UIViewController, AVCaptureMetadataOutputObjectsDelegate {
var captureSession: AVCaptureSession!
var previewLayer: AVCaptureVideoPreviewLayer!
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = UIColor.black
captureSession = AVCaptureSession()
let videoCaptureDevice = AVCaptureDevice.default(for: AVMediaType.video)
let videoInput: AVCaptureDeviceInput
do {
videoInput = try AVCaptureDeviceInput(device: videoCaptureDevice!)
} catch {
return
}
if (captureSession.canAddInput(videoInput)) {
captureSession.addInput(videoInput)
} else {
failed();
return;
}
let metadataOutput = AVCaptureMetadataOutput()
if (captureSession.canAddOutput(metadataOutput)) {
captureSession.addOutput(metadataOutput)
metadataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main)
metadataOutput.metadataObjectTypes = [AVMetadataObject.ObjectType.ean8, AVMetadataObject.ObjectType.ean13, …Run Code Online (Sandbox Code Playgroud) 用于定位Apple 2018设备的正确CSS媒体查询是什么:iPhone XR/XS/XS Max?
我正在使用iOS 11的Vision框架来检测图像上的文本.成功检测到文本,但我们如何获取检测到的文本.
我是Swift 4的新手,试图弄清楚如何自动将Json转换为swift对象,就像java中的Gson一样.是否有任何我可以使用的插件可以将我的json转换为对象,反之亦然.我曾尝试使用SwiftyJson库,但无法理解直接将json转换为对象映射器的语法是什么.在Gson转换如下:
String jsonInString = gson.toJson(obj);
Staff staff = gson.fromJson(jsonInString, Staff.class);
Run Code Online (Sandbox Code Playgroud)
你能为我这样的初学者建议一些非常简单的例子.以下是我的快速课程:
class Person {
let firstName: String
let lastName: String
init(firstName: String, lastName: String) {
self.firstName = firstName
self.lastName = lastName
}
}
Run Code Online (Sandbox Code Playgroud)
下面是从服务器获取响应的方法调用:
let response = Helper.makeHttpCall(url: "http://localhost:8080/HttpServices/GetBasicJson", method: "PUT", param: interestingNumbers)
Run Code Online (Sandbox Code Playgroud)
在响应变量中我得到json"{\\"firstName \\":\\"John \\",\\"lastName \\":\\"doe \\"}"
我正在开发一个应用程序,并希望使用uiactivityviewcontroller共享保存到我的文档目录中的图像视频和其他文件.图像和文件共享工作正常.图像共享代码
var textToShare : Any!
textToShare = UIImage(data:data)//data of an image
Run Code Online (Sandbox Code Playgroud)
存储在文档目录中的其他文件的代码.
var textToShare : Any!
textToShare = url//url of file saved into document directory
Run Code Online (Sandbox Code Playgroud)
但我不知道如何分享视频.在此之后,我使用以下代码来使用activityviewcontroller.
let activityViewController = UIActivityViewController(activityItems: [textToShare], applicationActivities: nil)
activityViewController.popoverPresentationController?.sourceView = self.view // so that iPads won't crash
// exclude some activity types from the list (optional)
activityViewController.excludedActivityTypes = [ UIActivityType.airDrop, UIActivityType.postToFacebook ]
// present the view controller
self.present(activityViewController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)