我myYear和myWeek琴弦来自API的,我想将它们转换为date字符串如YYYY-MM-DD我怎么能做到这一点在迅速3?我的字符串在下面。
let myYear = "2017"
let myWeek = "8"
Run Code Online (Sandbox Code Playgroud) 我正在尝试建立一个系统,其中我的所有 api 请求都通过一个函数并将它们映射到相应的对象
func sendApi<T>(url : String , httpMethod : HTTPMethod = .get,
parameters: Parameters? = nil,
encoding: ParameterEncoding = URLEncoding.default,
headers: HTTPHeaders? = nil , callbackSuccess : @escaping (T) -> () , callbackFailure : @escaping (T) -> ()) where T : Mappable {
Alamofire.request(url, method: httpMethod, parameters: parameters , encoding: encoding, headers: headers).responseObject{(response: (DataResponse<T>))in
switch response.result {
case .success :
let result = Mapper<T>().map(JSONObject: response.value)!
callbackSuccess(result)
break;
case .failure(let error):
if((error as NSError).code == ErrorResponse.noInternetConnection){
// errorCallBack(ErrorResponse.noInternetConnectionString)
}
// …Run Code Online (Sandbox Code Playgroud) let splitLines = line.split(separator: "\u{e2}")
case "\u{e2}":
print("FoundBadReturn")
let newText = text.replacingOccurrences(of: "\u{e2}", with: "\n")
Run Code Online (Sandbox Code Playgroud)
我正在处理 UITextView 中的 RTF 文档。我正在尝试使用 \n 更改包含 \u{e2} 字符的字符串这些行似乎都不适用于字符串
我正在尝试使用Swift 4解析来自CoinmarketCap 的一些 JSON 响应。JSONDecoder()但问题是来自 json 的响应正在根据用户输入而变化。例如,如果用户想要欧元的价格,输出如下:
[
{
"price_eur": "9022.9695444"
}
]
Run Code Online (Sandbox Code Playgroud)
但如果用户想要以英镑为单位的价格:
[
{
"price_gbp": "7906.8032145"
}
]
Run Code Online (Sandbox Code Playgroud)
所以问题是Decodable如果变量(json键)名称发生变化,我应该如何制作继承自的结构?
我对Swift相对较新,我在使用swift原生URLRequest从API中提取一些JSON时遇到了麻烦 - 这是在操场上.我测试了API端点,它在Postman中返回数据就好了
这是我的代码:
//: Playground - noun: a place where people can play
import Foundation
import XCPlayground
import PlaygroundSupport
import UIKit
let urlString = "http://example.test/industry"
let session = URLSession.shared
let url = URL(string: urlString)!
var request = URLRequest(url: url)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
session.dataTask(with: request, completionHandler: { (data: Data?, response: URLResponse?, error: Error?) in
if let responseData = response
{
do{
/*let json = try JSONSerialization.jsonObject(with: responseData, options: [])
print(json)*/
}catch{
print("Could not serialize")
}
}
})
PlaygroundPage.current.needsIndefiniteExecution = true …Run Code Online (Sandbox Code Playgroud) 我正在尝试计算车辆在两个检查站之间经过的时间。我已经设置了以下计时器来实现这一点。
func startTimer() {
if hasStarted == true && timerStarted == false {
print("Timing started!")
gameTimer = Timer.scheduledTimer(timeInterval: 0.001, target: self, selector: (#selector(activeTiming)), userInfo: nil, repeats: true)
timerStarted = true
}
}
@objc func activeTiming() {
print("Active timing block")
if(hasFinished == false) {
gameTime = gameTime + 0.001
print("Add time succeeded")
} else {
gameTimer?.invalidate()
}
}
Run Code Online (Sandbox Code Playgroud)
预期输出如下:
Timing started!
Active timing block
Add time succeeded
Add time succeeded ... etc
Run Code Online (Sandbox Code Playgroud)
实际输出:
Timing started!
Run Code Online (Sandbox Code Playgroud)
所以看起来 startTimer 被正确调用,但计时器没有触发 activeTiming 代码块。任何建议都会非常有帮助。提前谢谢你的帮助。
我正在研究苹果应用程序开发指南,这是我现在正在使用的代码......
struct CategoryInfo: Codable {
var category: String
var description: String
var logo: String
var mobileCategoryName: String
enum Keys: String, CodingKey {
case category
case description = "descr"
case logo
case mobileCategoryName = "mobileCatName"
}
init(from decoder: Decoder) throws {
let valueContainer = try decoder.container(keyedBy: Keys.self)
self.category = try valueContainer.decode(String.self, forKey: Keys.category)
self.description = try valueContainer.decode(String.self, forKey: Keys.description)
self.logo = try valueContainer.decode(String.self, forKey: Keys.logo)
self.mobileCategoryName = try valueContainer.decode(String.self, forKey: Keys.mobileCategoryName)
}
}
override func viewDidLoad() {
super.viewDidLoad()
let categories = …Run Code Online (Sandbox Code Playgroud) 我注意到在IOS X-Code中使用(Swift 4.0),我至少可以通过以下两种方式询问视图的高度V:
V.bounds.size.height
Run Code Online (Sandbox Code Playgroud)
和...
V.bounds.height
Run Code Online (Sandbox Code Playgroud)
这两者之间有什么实际差异吗?
我做了选项单击的东西(它给出了不同的定义,但没有解释任何实际差异或原因而不是另一个)...和stackoverflow ...但是在stackoverflow上,所有的结果都讨论了它们之间的区别边界和框架 ......这不是我要问的.
从 XCode 10.0 升级到 11 后
我收到错误“名称”不可用:在 iOS 上不可用
这是在XCode 11.0 和 11.1 上的Build for Swift 4.2期间,我仍然可以使用 XCode 10 进行构建
这发生在我们一直通过 Cocopods 使用的Objective C外部库之一的代码中。
return [(NSNumber *)[table[state] objectForKey:[rule name]] unsignedIntegerValue];
Run Code Online (Sandbox Code Playgroud)
我可以通过将变量名称重命名为ruleName来解决这个问题,但我宁愿不这样做。
为什么 Xcode 反对 name 的变量名?这是一个Xcode,还是我可以在构建设置中修复的东西
具体的pod是NUI 0.5.5
在模块 NUIPShiftReduceGotoTable.m 中
- (NSUInteger)gotoForState:(NSUInteger)state rule:(NUIPRule *)rule
{
return [(NSNumber *)[table[state] objectForKey:[rule name]] unsignedIntegerValue];
}
Run Code Online (Sandbox Code Playgroud) 在互联网上搜索我发现在小部件的旧版本中存在以下内存限制:
对用户交互做出适当的响应。表现良好(尤其是 iOS 小部件必须明智地使用内存,否则系统可能会终止它们)。” 小部件的内存限制为 16 MB,因此请保持简单并确保测试您的小部件是否存在内存泄漏
我想了解新版本iOS 14可能使用的内存是否相同或已更改。
我在文档中找不到任何内容。
我想在 中编写一个小部件Swift ui,但首先我想了解是否有任何限制。
谁能给我一些澄清?