Tag: 迅速

IOS,SWIFT,核心数据+多个表

我对ios和swift很陌生。 在单个视图中,如何将两个不同的获取请求发送到两个不同的表视图? 我有一个类级别的fetchReq函数,它使用NSPredicate来取一个参数,给我不同的结果,我想要的。 唯一知道哪个表是哪个tablView func的地方,但它看起来像决定哪些数据加载立即在viewDidLoad。 难道某种灵魂会帮助我重构核心数据代码,以便为每个表获取不同的获取请求? import UIKit import CoreData class CustomTableViewCell : UITableViewCell { @IBOutlet var l1: UILabel? @IBOutlet var l2: UILabel? func loadItem(#number: String, name: String) { l1!.text = number l2!.text = name } } class ViewController: UIViewController, UITableViewDelegate, NSFetchedResultsControllerDelegate, UITableViewDataSource { @IBOutlet var tableView1: UITableView! //this is my second table – Ive […]

NSURLSession从崩溃中恢复

有没有人有任何提示如何重新连接到NSURLSession下载后崩溃。 如果我的应用程序崩溃,我相信下载继续在设备上,然后当我的应用程序重新启动我可以使用相同的sessionID: NSURLSessionConfiguration.backgroundSessionConfiguration(sessionID) 但是,我是否应该调用“session.getTasksWithCompletionHandler”来查看是否有任何任务? 文件不清楚。 我的UI为每个文件下载都有一个下载进度条,所以理想情况下,当我重新启动应用程序时,它会尝试重新连接并将进度挂钩到UI。 目前发生的事情是我重新开始下载,我的进度条闪烁,因为有2个下载正在进行 – 旧的和新的,然后它自己进入一个状态…

如何不允许用户在uitextfield中input超过190的值?

在进入本身时,我必须允许uitextfield值小于190, uitextfield不应该允许用户在19之后input1到9位数字。 任何人都可以提供一些关于这方面的信息。 我尝试了下面的代码,但它允许超过190 。 if countElements(textField.text!) + countElements(string) – range.length < 4 { var floatValue : Float = NSString(string: toString(textField.text)).floatValue return floatValue < 190.0 }

如何使用“包含”两个对象数组

我有类产品 class Products { var name:String = "" var number:Int = 0 init(name: String, number: Int) { self.name = name self.number = number } } 然后在视图控制器 var productFirst:[Products] = [Products(name: "First", number: 1)] var productSecond:[Products] = [Products]() 我使用productFirst来填充tableView。 我想添加选定的行到productSecond,它的工作原理: productSecond.append(productFirst[indexPath.row]) 但我不想在数组中重复项目,所以我做了 if !contains(productSecond, productFirst[indexPath.row]) { productSecond.append(productFirst[indexPath.row]) } 我得到错误。 如何改变它? 当productFirst和productSeconds只是string数组,它的工作正常,但现在我需要的对象。 关于错误:首先是“无法find接受提供参数的”!“的重载。删除感叹号后,它是”无法用types的参数列表调用包含“(@lvalue [Products,$ T8)'

单独在Swift中创build自定义的sqlite函数

如何在Swift中添加一个自定义的sqlite函数? 下面的SO问题解决了在涉及坐标的sqlite查询中使用像acos和cos 这样的函数的问题:iOS sqlite没有这样的函数:ACOS错误 build议是添加一个自定义函数。 但是这个例子在Objective-C中给出。 除了桥接到Objective-C有一个本地的Swift函数或库,允许创build自定义函数?

alignmentUIBarButtonItem后退button

这是我在我的viewDidLoad方法: self.navigationController?.navigationBar.backIndicatorImage = UIImage(named: "back")?.imageWithRenderingMode(.AlwaysOriginal) self.navigationController?.navigationBar.backIndicatorTransitionMaskImage = UIImage(named: "back")?.imageWithRenderingMode(.AlwaysOriginal) self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: nil, action: nil) 这显示了一个自定义的图片,当点击button时工作,但是该button被推向状态栏。 如何降低button?

IOS谷歌地图自定义InfoWindow Xib错误

你好! 我想使用Swift&Xib来制作自定义标记InfoWindow 创buildXib – 尺寸宽度:200 /高度:200 但不改变应用程序的大小 所以我在程序中以编程方式设置大小Infowindow.frame.size.width = 200 Infowindow.frame.size.height = 200 现在改变大小! 顺便说一下,我想在Xib中改变大小,但现在正在工作…我该怎么办?

为swift框架创buildCocoapod

我正在计划为我的框架制作Cocoapod,这个框架是用github放在这里的 。 我经历了Cocoapod的文档,但是我无法把头围住。 任何人都可以请解释如何实现它或指向任何教程,将解释它。

Swift:如果key不存在,decodeObjectForKey会崩溃

我正在使用下面的Swift代码解压缩一个Swift类: required convenience init(coder decoder: NSCoder) { self.init() horseID = decoder.decodeIntegerForKey("horseID") name = decoder.decodeObjectForKey("name") as String! // if the thumb key does not exist, the following line crashes thumb = decoder.decodeObjectForKey("thumb") as UIImage! } 稍后添加“拇指”类成员。 我有一个没有拇指数据的旧档案文件。 苹果的文档说,取消存档不存在的密钥返回零。 这是熟悉的Objective-C行为。 我的Swift代码崩溃,错误代码为:EXC_BAD_INSTRUCTION(code = EXC_I386_INVOP,subcode = 0x0)。 从as? 并没有消除这个问题。 这使得在新版本中扩展数据模型变得困难。 难道我做错了什么? 我是Swift新手。

在IOS 9上使用AVPlayer和Swift反向播放video

我有一个录制的video剪辑,我想反向播放。 向前播放是好的,但只要我寻求video文件的结尾,并设置回放速度为-1.0的video剪辑寻求到剪辑的结尾(我看到这在video上方的时间线栏),但确实不能反向播放。 在我介绍播放器视图控制器之后,我检查它是否准备好使用: print("readyForDisplay = \(playerViewController.readyForDisplay)") 这告诉我,所有准备好准备玩。 我检查是否可以反向播放: let reversePlay = playerViewController.player!.currentItem?.canPlayReverse print("reversePlay = \(reversePlay)") 这返回TRUE 然后我寻找剪辑的结尾,并将播放速率设置为-1.0以反向播放。 playerViewController.player!.seekToTime(playerViewController.player!.currentItem!.asset.duration) playerViewController.player!.rate = -1.0 我相信已经有了这个可以玩的地方,因为如果我添加以下内容: let status : AVPlayerItemStatus? = playerViewController.player!.currentItem?.status if status == AVPlayerItemStatus.ReadyToPlay { print("Ready to play") } 它告诉我剪辑已经准备好播放了,所以我假设寻求剪辑结束(只有2秒钟)已经完成。 然后我播放剪辑: playerViewController.player!.play() 如果我不追求最终目标,并试图改变比赛速度来使其反转,那么它就会起作用。 我在这里错过了什么?