小编nat*_*han的帖子

如何使用Swift的Codable编码成字典?

我有一个实现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)

swift swift4 codable

93
推荐指数
8
解决办法
5万
查看次数

iPhone X/8/8 Plus CSS媒体查询

与Apple的新设备相对应的CSS媒体查询是什么?我需要设置body's background-color来改变X的安全区域背景颜色.

css media-queries iphone-x iphone-8 iphone-8-plus

64
推荐指数
3
解决办法
9万
查看次数

扩展中的声明无法覆盖Swift 4中的错误

我有一个扩展名:

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中有什么变化?

ios swift swift-playground swift4

62
推荐指数
2
解决办法
3万
查看次数

将Vision VNTextObservation转换为String

我正在浏览Apple的Vision API文档,我看到了几个与文本检测有关的类UIImages:

1) class VNDetectTextRectanglesRequest

2) class VNTextObservation

看起来他们可以检测到角色,但我没有看到对角色做任何事情的方法.一旦你检测到了角色,你会如何将它们变成可被解释的东西NSLinguisticTagger

这是一篇简短的概述Vision.

谢谢你的阅读.

ocr machine-learning ios nslinguistictagger apple-vision

54
推荐指数
4
解决办法
2万
查看次数

条形码快速4

我正在尝试将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)

barcode avcapturesession swift4 ios11 xcode9-beta

41
推荐指数
3
解决办法
1万
查看次数

iPhone XR/XS/XS Max CSS媒体查询

用于定位Apple 2018设备的正确CSS媒体查询是什么:iPhone XR/XS/XS Max?

css iphone media-queries

24
推荐指数
2
解决办法
3万
查看次数

从Swift 4中删除了toUIntMax()和toIntMax()

是什么替换了方法toUIntMax()和Swift 4中的方法toIntMax()?该错误发生在FacebookCore框架内.

任何帮助,将不胜感激

int facebook-ios-sdk swift swift4

22
推荐指数
1
解决办法
4785
查看次数

iOS 11 Vision框架 - 从图像中提取文本

我正在使用iOS 11的Vision框架来检测图像上的文本.成功检测到文本,但我们如何获取检测到的文本.

ios11 apple-vision

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

Swift 4 - 如何像Json中的Gson一样自动将Json转换为swift对象

我是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 \\"}"

json swift swifty-json swift4

10
推荐指数
1
解决办法
6276
查看次数

使用uiactivityViewcontroller分享视频

我正在开发一个应用程序,并希望使用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)

uiactivityviewcontroller swift3

9
推荐指数
1
解决办法
3682
查看次数