我想找到下一个小时的时间.例如
现在是: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) 我正忙着在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) 我在我的应用程序中有一个要求,我需要使用 swift 显示 .ipa 文件创建日期。
谁能告诉我怎么做。
提前致谢。
这是我在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'
这是一个理论问题
为什么以下(以及更多类比)不是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) 我正在实现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)
提前致谢!!
从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它不是一组Character但Unicode.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的正确结果?可以使用更少的代码计算行数(同时仍然保持可读性)?
很好奇,在Swift 4中会是什么?
stimageout = AVCapturePhotoOutput()
stimageout?.outputSettings = [AVVideoCodecKey : AVVideoCodecJPEG]
目前,它的错误Value of type 'AVCapturePhotoOutput' has no member 'outputSettings'是很奇怪的,因为我没有记着苹果更改它的记录。
这不是“乞求帮助”类型的问题。我很好奇Apple是否更改了此设置以及我需要采取的步骤来解决此问题。
提前致谢。:)
我有一些代码来过滤变量内的数字。
这是代码:
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
如何修复此错误?谢谢你。
我正在尝试实现一个通用的 Mutable Ordered Set 类型,它需要符合许多协议才能与 Array 和 Set 在 Swift 中的行为方式相同。首先要做到的是,泛型类型元素的需求,以符合Hashable和通用结构需要顺应RandomAccessCollection,SetAlgebra,ExpressibleByArrayLiteral,AdditiveArithmetic,RangeReplaceableCollection和MutableCollection。我想也允许其访问标SubSequence添加支持PartialRangeThrough,PartialRangeUpTo,PartialRangeFrom和UnboundedRange也。
这是我的通用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)