我有这样的字典
["Price": ["$00.00 - $200.00", "$200.00 - $400.00", "$600.00 - $800.00"]]
Run Code Online (Sandbox Code Playgroud)
现在我将所有字典值存储在这样的数组中
var priceRange: [String] = [String]()
if let obj = currentFilters["Price"] as? [String] {
self.priceRange = obj
printD(self.priceRange)
}
Run Code Online (Sandbox Code Playgroud)
通过使用Array.first和Array.last方法,我将得到我的数组的第一个元素和最后一个元素的值.
let first = priceRange.first ?? "" // will get("[$00.00 - $200.00]")
let last = priceRange.last ?? "" // will get("[$600.00 - $800.00]")
Run Code Online (Sandbox Code Playgroud)
但我真正想要的是我想要的$ 00.00,从第一和$ 800从去年作出的所需组合[$点- $ 800.00] .
我怎样才能做到这一点.请帮忙?
我一直在网上浏览所有内容,但似乎找不到所需的教程或帮助。
使用AVFoundation和Dlib库,我创建了一个应用程序,可以使用手机上的前置摄像头从实时视频中检测人脸。我正在使用Shape Predictor 68 Face Landmarks 执行此操作。为此,我敢肯定我必须使用AVCaptureVideoDataOutputAVMovieFileOutput而不是AVMovieFileOutput,以便可以分析每个帧。
现在,我希望能够将视频保存到文件中,并根据收集的信息AVAssetWriter来执行此操作。我只是在任何地方都找不到太多有关如何开始使用此方法的信息。我对Swift和iOS编程是完全陌生的,并且从Apple文档中不能真正了解很多。
如果有人可以帮助我,将不胜感激!
假设我有五个视图控制器,我想转到特定的视图控制器
RootViewController ==> FirstViewController ==> SecondViewController ==> ThirdViewController ==> FourViewController(模态呈现有一个按钮)和我通过推送方法连接的所有其他控制器。我的任务是当单击按钮时,我想从第四个视图控制器转到第一个视图控制器。有什么帮助吗?
for controller in self.navigationController!.viewControllers as Array {
if controller.isKind(of: HomeViewController.self) {
self.navigationController!.popToViewController(controller, animated: true)
break
}
}
Run Code Online (Sandbox Code Playgroud)
这是我所做的代码。
我正在使用iOS MapboxSDK,并且需要在多边形中找到中心坐标,因为我想在中心坐标中添加标记。如何在Swift中执行此操作?
func drawPolygonFeature(shapes: [MGLShape & MGLFeature]) {
let shapeSource = MGLShapeSource(identifier: "MultiPolygonShapeSource", shapes: shapes, options: nil)
let lineStyleLayer = MGLLineStyleLayer(identifier: "LineStyleLayer", source: shapeSource)
lineStyleLayer.lineColor = NSExpression(forConstantValue: UIColor.purple)
lineStyleLayer.lineOpacity = NSExpression(forConstantValue: 0.5)
lineStyleLayer.lineWidth = NSExpression(forConstantValue: 4)
DispatchQueue.main.async(execute: {[weak self] in
guard let self = self else { return }
self.mapView.style?.addSource(shapeSource)
self.mapView.style?.addLayer(lineStyleLayer)
let multiPolygonFeature = shapes.first as? MGLMultiPolygonFeature
if let centerCoordinate = multiPolygonFeature?.polygons.first?.coordinate {
self.mapView.centerCoordinate = centerCoordinate
// but centerCoordinate var does not contain the center coordinate
}
})
}
Run Code Online (Sandbox Code Playgroud) 我试图Timestamp在我的应用程序中通过 Firestore中的今天日期。我得到今天的日期是这样的
formatter.dateFormat = "MMMM d, yyyy"
let result = formatter.string(from: date)
print("Today date is \(result)")
let startDate = result + " " + "07:00:00"
let endDate = result + " " + "23:00:00"
Run Code Online (Sandbox Code Playgroud)
我必须从早上 7 点到下午 23:00 传递今天的日期,并将这些日期存储在startDate和 中endDate。现在我在这样的Firestore查询中传递这些时间:-
self.db.collection("Locations").whereField("userid", isEqualTo: "\(selectedUserID)").whereField("createddatetime", isGreaterThanOrEqualTo: "\(startDate)").whereField("createddatetime", isLessThanOrEqualTo: "\(endDate)").getDocuments()
Run Code Online (Sandbox Code Playgroud)
但我的快照没有得到任何结果。我怎样才能做到这一点。请帮忙?
这是我在AppDelegate类(Swift 4)中编写的代码:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
UIApplication.shared.statusBarStyle = .lightContent
goToRootViewController()
UINavigationBar.appearance().isTranslucent = true
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .default)
GMSServices.provideAPIKey(googleMapApiKey)
return true
}
Run Code Online (Sandbox Code Playgroud)
但我的状态栏没有显示轻量级内容我不知道什么是ging,任何帮助?

我试图Firestore通过执行如下查询来获取文档 ID:-
func updateStatusInFirestore() {
let orderid = saleOrder.first?.Orderid ?? ""
print(orderid)
let settings = db.settings
settings.areTimestampsInSnapshotsEnabled = true
db.settings = settings
self.db.collection("SaleOrders").whereField("orderid", isEqualTo: "\(orderid)").getDocuments { (snapshot, err) in
if let err = err {
print("Error getting documents: \(err)")
} else {
for document in snapshot!.documents {
self.documentid = document.documentID
print(self.documentid)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
其中我从模型类中获取订单 id,并且它正在打印订单 id 的值,但是当我尝试将其放入whereField查询中时,它不会执行查询,并且我在控制台中没有得到任何结果。
如果我这样使用它就可以工作
self.db.collection("SaleOrders").whereField("orderid", isEqualTo: "ji20190205091948").getDocuments
Run Code Online (Sandbox Code Playgroud)
但是当我这样使用时
let orderid = saleOrder.first?.Orderid ?? ""
self.db.collection("SaleOrders").whereField("orderid", isEqualTo: "\(orderid)").getDocuments
Run Code Online (Sandbox Code Playgroud)
它不起作用。我做错了什么。请帮忙?
我想根据改变TableView数据Textfield.当用户点击Textfield并开始编辑时,它将相应地改变TableView data.我看到了很多例子,但主要是我发现有关搜索栏的任何帮助都会受到赞赏.请注意,这是textfield not seacrhbar
我正在开发视频共享 iOS 应用程序并Firebase5用作后端。它允许用户可以选择视频并将其发送到存储。当我尝试时,视频无法推送到database服务器。下面是我的代码:
static func uploadVideoToFirebaseStorage(videoUrl: URL, onSuccess: @escaping (_ videoUrl: String) -> Void) {
let videoIdString = NSUUID().uuidString
//Config.STORAGE_ROOT_REF is var STORAGE_ROOT_REF = "gs://****-cdc3c.appspot.com"
let storageRef = Storage.storage().reference(forURL: Config.STORAGE_ROOT_REF).child("posts").child(videoIdString)
storageRef.putFile(from: videoUrl, metadata: nil) { (metadata, error) in
if error != nil {
ProgressHUD.showError(error!.localizedDescription)
return
}
}
storageRef.downloadURL(completion: { (url, error) in
if let error = error {
return
}else {
let videoUrl = url!.absoluteString
onSuccess(videoUrl)
}
})
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试扫描参考图像,然后在打印的参考图像上方显示图像本身。“虚拟”图像尺寸应与打印尺寸相同。
我的想法:获取打印的参考图像的大小,然后将图像缩放SCNNode到此大小(或将 SCNNode 缩放到此大小?)
但是:1-> 如何获得打印图像的大小,2-> 缩放SCNNode我也需要这个节点的大小。如何获得?
import UIKit
import SceneKit
import ARKit
import AVKit
import AVFoundation
class ViewController: UIViewController, ARSCNViewDelegate {
@IBOutlet var sceneView: ARSCNView!
private var planeNode: SCNNode?
private var imageNode: SCNNode?
private var animationInfo: AnimationInfo?
private var currentMediaName: String?
private var scrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
let scene = SCNScene()
sceneView.scene = scene
sceneView.delegate = self
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// Load reference images to look for …Run Code Online (Sandbox Code Playgroud) CollectionView或TableView中的Didselect函数;
let trial = TrialViewController ()
self.navigationController?.pushViewController (trial, animated: true)
Run Code Online (Sandbox Code Playgroud)
我想转到另一个页面,但它没有响应。当我打字时,同样的事情也在发生。
self.present (den, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
当我打字时正在工作。
为什么pushViewController不工作?
谢谢
有没有办法关闭所有视图控制器(其中一些控制器通过导航推送)并返回到根视图控制器。我看到了很多例子,但它们在我的应用程序中不起作用。我正在使用 swift 4
这是 appdelegate 中的代码
func setNavigationToRootViews(){
storyBoard = UIStoryboard(name: "Main", bundle: nil)
nav = storyBoard?.instantiateViewController(withIdentifier: "mainNavigation") as! UINavigationController?
let accessToken: String? = KeychainWrapper.standard.string(forKey: "token")
print(accessToken as Any)
if accessToken != nil {
let homeVc = storyBoard?.instantiateViewController(withIdentifier: "Home-VC") as! HomeViewController
nav?.pushViewController(homeVc, animated: false)
}else{
let welcomVc = storyBoard?.instantiateViewController(withIdentifier: "login-VC") as! LoginViewController
nav?.pushViewController(welcomVc, animated: false)
}
let leftMenuVC = storyBoard?.instantiateViewController(withIdentifier: "menu-VC") as! MenuViewController
container = MFSideMenuContainerViewController.container(withCenter: nav, leftMenuViewController: leftMenuVC, rightMenuViewController: nil)
container?.panMode = MFSideMenuPanModeNone
window?.rootViewController = container
window?.makeKeyAndVisible()
}
Run Code Online (Sandbox Code Playgroud)
这在我的最后一个视图控制器中 …