小编Leo*_*bus的帖子

如何在Swift中使用Calendar nextDate方法查找下一个小时时间

我想找到下一个小时的时间.例如

现在是:4/9/16,10:12:34 AM GMT + 10我想得到:4/9/16,11:00:00 AM GMT + 10

所以我尝试使用Calendar.current.nextDate,但我得到了奇怪的回应.示例代码如下.

let dateFormatter = DateFormatter()
    dateFormatter.dateStyle = .short
    dateFormatter.timeStyle = .long

    var dateComponents = DateComponents()
    dateComponents.minute = 0
    dateComponents.second = 0

    let beginDate = Date(timeIntervalSince1970: 0)
    var beginDateComponents = Calendar.current.dateComponents(in: TimeZone.current, from: beginDate)
    beginDateComponents.minute = 0
    beginDateComponents.second = 0
    let modifiedDate = Calendar.current.date(from: beginDateComponents)!

    let nextHourlyTime = Calendar.current.nextDate(after: modifiedDate, matching: dateComponents, matchingPolicy: .nextTime)!

    print("modifiedDate: \(dateFormatter.string(from: modifiedDate))")
    print("beginDate: \(dateFormatter.string(from: beginDate))")
    print("nextHourlyTime: \(dateFormatter.string(from: nextHourlyTime))")

    /*
     modifiedDate: 1/1/70, 10:00:00 AM GMT+10
     beginDate: 1/1/70, …
Run Code Online (Sandbox Code Playgroud)

ios swift

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

使用seperator","加入字符串数组,并添加",和"以加入Swift中的最后一个元素

我正忙着在Swiftty操场上用SwiftyJSON解析JSON.我的代码如下:

import UIKit
import SwiftyJSON

var partyList: [String] = []
var firstPresidentList: [String] = []

if let url = URL(string:"http://mysafeinfo.com/api/data?list=presidents&format=json") {
    if let data = try? Data(contentsOf: url) {
        let json = JSON(data: data)
        for i in 1...43 {
            let party = json[i]["pp"].stringValue
            let president = json[i]["nm"].stringValue
            if partyList.contains(party) {
                print("\n")
            } else {
                partyList.append(party)
                firstPresidentList.append(president)
            }
        }
        print("All the different parties of U.S. presidents included "+partyList.joined(separator: ", ")+", in that order. The first presidents of those parties were (repectively) …
Run Code Online (Sandbox Code Playgroud)

json swift

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

如何使用 Swift 获取 iOS APP 存档日期

我在我的应用程序中有一个要求,我需要使用 swift 显示 .ipa 文件创建日期。

谁能告诉我怎么做。

提前致谢。

iphone macos ios swift

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

使用未声明的类型'日期'Xcode 9 Swift 4

这是我在xcode 9游乐场的代码

class Tutorial: Codable {
    let title: String
    let author: String
    let editor: String
    let type: String
    let publishDate: Date

    init(title: String, author: String, editor: String, type: String, publishDate: Date) {
        self.title = title
        self.author = author
        self.editor = editor
        self.type = type
        self.publishDate = publishDate
    }
}
Run Code Online (Sandbox Code Playgroud)

显示错误使用未声明类型'Date'

ios swift swift-playground

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

Swift字符串和整数下标

这是一个理论问题

为什么以下(以及更多类比)不是Swift标准库的一部分?什么是坏情况

extension String {
    subscript(_ range: Range<Int>) -> Substring {
        return self[index(startIndex, offsetBy: range.lowerBound)..<index(startIndex, offsetBy: range.upperBound)]
    }
}

extension Substring {
    subscript(_ range: Range<Int>) -> Substring {
        return self[index(startIndex, offsetBy: range.lowerBound)..<index(startIndex, offsetBy: range.upperBound)]
    }
}
Run Code Online (Sandbox Code Playgroud)

string swift swift4

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

如果没有更多的上下文swift 4.0,表达式的类型是不明确的

我正在实现pod'Socket.IO-Client-Swift '

但在SocketEngine.swift文件中我收到此错误.

 private func handleBase64(message: String) {
            // binary in base64 string
            let noPrefix = message[message.index(message.startIndex, offsetBy: 2)..<message.endIndex]

            if let data = Data(base64Encoded: noPrefix, options: .ignoreUnknownCharacters) {
                client?.parseEngineBinaryData(data)
            }
        }
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

提前致谢!!

ios swift swift4

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

计算Swift字符串中的行数

从Web服务中读取一个中等大小的文件(大约500kByte)后,我有一个lines最初编码的常规Swift String().isolatin1.在实际拆分之前,我想计算行数(快速),以便能够初始化进度条.

实现这一目标的最好的Swift成语是什么?

我想出了以下内容:

let linesCount = lines.reduce(into: 0) { (count, letter) in
   if letter == "\r\n" {
      count += 1
   }
}
Run Code Online (Sandbox Code Playgroud)

这看起来并不太糟糕,但我问自己是否有更短/更快的方法.该characters属性提供对一系列Unicode字素的访问,这些字形\r\n仅作为一个实体处理.用all检查这个CharacterSet.newlines不起作用,因为CharacterSet它不是一组CharacterUnicode.Scalar在我的书中有一组(在我的书中有点反直觉),它是一组代码点(其中\ r \n计为两个代码点),而不是字形.试

var lines = "Hello, playground\r\nhere too\r\nGalahad\r\n"
lines.unicodeScalars.reduce(into: 0) { (cnt, letter) in
if CharacterSet.newlines.contains(letter) {
    cnt += 1
}
Run Code Online (Sandbox Code Playgroud)

}

将计数为6而不是3.因此这比上述方法更通用,但它不能正确用于CRLF行结尾.

有没有办法允许更多的行结束约定(如CharacterSet.newlines)仍然可以实现CRLF的正确结果?可以使用更少的代码计算行数(同时仍然保持可读性)?

unicode line-endings swift

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

类型“ AVCapturePhotoOutput”的值没有成员“ outputSettings”

很好奇,在Swift 4中会是什么? stimageout = AVCapturePhotoOutput() stimageout?.outputSettings = [AVVideoCodecKey : AVVideoCodecJPEG]

目前,它的错误Value of type 'AVCapturePhotoOutput' has no member 'outputSettings'是很奇怪的,因为我没有记着苹果更改它的记录。

这不是“乞求帮助”类型的问题。我很好奇Apple是否更改了此设置以及我需要采取的步骤来解决此问题。

提前致谢。:)

swift swift4 ios11

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

如何修复“字符”不可用:请在 swift 5 中直接使用 String

我有一些代码来过滤变量内的数字。

这是代码:

var numbers = String(anotherNumbers.characters.filter { "01234567890.".characters.contains($0) })
Run Code Online (Sandbox Code Playgroud)

在 swift 3 中,此代码工作正常。但是在 Swift 5 中,我收到一个错误'characters' is unavailable: Please use String directly

如何修复此错误?谢谢你。

swift

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

如何在原生 Swift 中实现以前称为 NSMutableOrderedSet 的可变有序集泛型类型?

我正在尝试实现一个通用的 Mutable Ordered Set 类型,它需要符合许多协议才能与 Array 和 Set 在 Swift 中的行为方式相同。首先要做到的是,泛型类型元素的需求,以符合Hashable和通用结构需要顺应RandomAccessCollectionSetAlgebraExpressibleByArrayLiteralAdditiveArithmeticRangeReplaceableCollectionMutableCollection。我想也允许其访问标SubSequence添加支持PartialRangeThroughPartialRangeUpToPartialRangeFromUnboundedRange也。

这是我的通用OrderedSet结构声明:

public struct OrderedSet<Element: Hashable> {
    public init() { }
    private var elements: [Element] = []
    private var set: Set<Element> = []
}
Run Code Online (Sandbox Code Playgroud)

尽管这是一个自我回答的问题,但我真的很感激并鼓励提供新的答案、有关此实现的一些反馈和/或有关如何修复/改进它的建议:

编辑/更新:

sorted方法按预期工作,但sort它的变异甚至不会改变元素顺序。

可变集合

声明变异

功能排序()

当 Self 符合 RandomAccessCollection 并且 Element 符合 Comparable 时可用。

var …
Run Code Online (Sandbox Code Playgroud)

arrays set nsorderedset nsmutableorderedset swift

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