Tag: 快捷

离线时精确的时间检测

背景信息 我正在开发连接到服务器的iOS应用程序,并且可以从设备向服务器发出请求,以使本地数据库与服务器的数据库同步。 任何一个数据库都可能发生更改。 该应用程序还具有脱机function,用户可以在不连接到互联网连接的情况下修改数据,只通过发送新数据和从服务器接收更新来使设备的本地数据库与服务器的数据库同步。 更新了更多背景信息:处理的数据是必须在一定时间内完成的表单。 开始的时间作为属性存储在模型中,并且使用该属性,应用程序向用户显示该表单被locking之前还剩多less时间。 问题 当设备处于离线状态时,用户可以操纵时间设置,这会使从该设备收到的数据不准确。 我已经search了一种方法来检测设备时间设置的变化,但根据这个答案 ,这似乎不可能,除非我的应用程序在后台运行,苹果是非常严格的,并且不允许,除非应用程序启用了其中一种背景模式 ,这在应用程序中是不适用的。 更新了更多的信息:正如我在上面提到的背景信息的更新部分所述,数据是可能有时间限制的表格。 因此用户可以在一个设备上启动一个表单,但是不能在那里完成。 然后,他们将数据同步到服务器,跳转到另一个设备,并完成相同的forms。 build议的解决scheme 我最近解决这个问题的方法是,在安装应用程序时获取服务器时间和设备时间之间的差异(在第一次打开应用程序时确保在线,以便为此设备进行configuration),并且每当我想存储一个时间相关的值时,使用这个差别作为参考。 如果服务器检测到时间差异,它将拒绝来自该设备的所有数据,这将迫使设备恢复数据,更新时间差,只有这样才能从该设备接受数据。 问题是,当设备处于脱机状态时,用户可以更改时间设置,对数据执行更改,然后将时间设置返回到上一次联机之前的时间设置。 然后,服务器将检测到时间设置没有变化,并将接受无效的数据。 更新以添加另一个build议的解决scheme:在下面的问题中详细解释我的注释,以及@Krypton的注释,由于与上述解决scheme相同的问题,设备的正常运行时间对我的情况没有多大帮助。 将设备的正常运行时间与服务器时间进行比较是完美的, 直到用户重新启动设备 。 这不是用户可以手动更改的,但是所有这一切都需要重新启动才能打破一切,这将为我产生相同的不准确数据。 解决这个问题需要计算新的差异,这在设备离线时不起作用。 问题 是否存在不可更改的时间戳,可以在保存与时间相关的值时用作参考,使其不受用户对设备时间的更改影响? 这个例子就是设备第一次激活的时间。 ( 注 :最接近我发现任何相关的是设备的正常运行时间 ,但这并没有什么帮助我的情况) 有没有办法知道当前的时间,而不需要上网,只要一个时间相关的值将被保存? 有没有办法来解决我提出的解决scheme,或更好的解决scheme?

如何计算UIImage的平均颜色?

我想build立一个应用程序,让用户select一个图像,并输出“平均颜色”。 例如,这个图像: 平均颜色是绿/淡黄色。 目前,我得到了这个代码: // In a UIColor extension public static func fromImage(image: UIImage) -> UIColor { var totalR: CGFloat = 0 var totalG: CGFloat = 0 var totalB: CGFloat = 0 var count: CGFloat = 0 for x in 0..<Int(image.size.width) { for y in 0..<Int(image.size.height) { count += 1 var rF: CGFloat = 0, […]

在swift中parsing对象内的json数组

这是我必须在我的项目中实现的示例json代码,请告诉我如何编写代码。 我多次写代码。 这根本不是工作。 所以我希望全部例子。 在这里我可以看到,首先有一个对象,接下来有一个多个对象,最后是一个对象内的数组。 请看详情… ActivityIndicator.customActivityIndicatory(self.view, startAnimate: true) let url = URL(string: Configuration.BASE_URL+"/products/"+String(category_id)+"?page=1") // sir // let url = URL(string: Configuration.BASE_URL+"/products/"+String(category_id)) // sir URLSession.shared.dataTask(with:url!) { (urlContent, response, error) in if error != nil { print(error) } else { do { let json = try JSONSerialization.jsonObject(with: urlContent!) as! [String:Any] let items = json["products"] as? [[String: […]

我怎样才能parsing一个数组到json上的Swift?

我需要从json请求中获取值“maxtemp_c”,但它不起作用。 这是我所做的,当我尝试parsingJSON并且值为零时,它将会阻塞 //url of the json let url = URL(string: "http://api.apixu.com/v1/forecast.json?key=6cffef39633d4489a0e101339171811&q=Loria&days=3")! let taskfor = URLSession.shared.dataTask(with: url) { (data, response, error) in if error != nil { print("some error occured") } else { if error == nil { do{ let jsonResult = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! [String : AnyObject] let forecast = jsonResult["forecast"] as? […]

如何在dynamic表格视图内容中添加静态数据。 并执行计算

我有一个表格视图,它将显示产品名称及其价格和数量的dynamic数据。 我需要的是,所有产品的最后都以我的表格视图显示。 总产品可以是任何东西。 像10个产品或2个产品。 它可能是什么。 但最后所有产品我必须显示3静态数据。 像SUBTOTAL, TAX, TOTAL 。 我需要计算所有产品的产品数量X产品成本。 在我的小计,税,​​总计我需要显示总金额。 喜欢这个 : 这是我的表格视图代码: func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "cartcel", for: indexPath) as! cartTableViewCe cell.productName.text = Addtocartdata[indexPath.row].cartproName cell.productQty.text = Addtocartdata[indexPath.row].cartproPrice cell.productAmount.text = Addtocartdata[indexPath.row].cartproPrice return cell; } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int […]

为什么从这个URL中检索数据返回零?

我正在关注这个post获取JSON数据 ,由于某种原因,这个函数: func getJSON(urlToRequest: String) -> NSData { return NSData(contentsOfURL: NSURL(string: urlToRequest)!)! } 返回nil因为我得到的错误: fatal error: unexpectedly found nil while unwrapping an Optional value 我已经打破了这个function: func getJSON(urlToRequest: String) -> NSData { let url : NSURL! = NSURL(string: urlToRequest) let data : NSData! = NSData(contentsOfURL: url) return data } 根据我的debugging器: Printing description of url: www.reddit.com/r/earthporn/.json Printing […]

SecCopyErrorMessageString在swift中给出“使用未parsing的标识符”

尝试使用SecCopyErrorMessageString来解释errorCode。 在迅速: var result: OSStatus result = SecItemAdd(query as CFDictionary, nil); if result != errSecSuccess { let errorDescription = SecCopyErrorMessageString(result,nil) // NSLog("Keychain Error: %@", errorDescription) “未parsing标识符”的错误从“SecCopyError …”开始

使用SWIFTsearch地址

在我的应用程序中,我需要用户input他的家庭地址,但我不能以任何方式显示地址只显示在用户区域,并且是完整的地址,如225e 57th st, NY, New York 。 我想给用户在tableview上列出的所有选项,并在用户input他的地址时过滤它们。

在swift中parsingJSON数组

我正试图parsing下面的JSON [ { "id": "5", "name": "Test", "team1": "thingy team", "team2": "clicky team", "category": "4", "end_date": "1415217600", "cat_name": "new thingy", "team1_bets": 1, "team2_bets": 1 } ] 这是我从我的Web服务得到的JSON,我正在使用下面的代码来parsing它: let urlAsString = "http://codespikestudios.com/betting_app/bet/get_events/4" //let urlAsString = "http://api.topcoder.com/v2/challenges?pageSize=2" let url: NSURL = NSURL(string: urlAsString)! let urlSession = NSURLSession.sharedSession() let jsonQuery = urlSession.dataTaskWithURL(url, completionHandler: { data, response, error -> […]

设置包的值返回nil

我添加了一个设置包到我的应用程序,在Xcode它出现在我的项目树视图的根。 Root.plist文件如下所示: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>StringsTable</key> <string>Root</string> <key>PreferenceSpecifiers</key> <array> <dict> <key>Type</key> <string>PSGroupSpecifier</string> <key>Title</key> <string>Service</string> </dict> <dict> <key>Type</key> <string>PSTextFieldSpecifier</string> <key>Title</key> <string>Hostname</string> <key>Key</key> <string>service_hostname</string> <!– and so on –> 当我在iOS上打开“设置”应用程序时,该条目出现在底部,我可以很好地显示和编辑我的设置。 但是我无法从代码中检索这些值。 这是我的代码: static func loadSettings() { let ud = NSUserDefaults.standardUserDefaults() ud.synchronize() Settings.hostName = ud.stringForKey("service_hostname") // etc } […]