Tag: 快速

领域查询对象属性字段的属性

我正在使用Swift为iOS开发应用程序,并selectRealm作为它的数据库解决scheme。 我问了一个关于Realm的问题 ,现在我又有了一个问题 。 假设我们有这样的模式: class Person: Object { dynamic var id: String = NSUUID().UUIDString dynamic var name: String? dynamic var cars: Car? class Car: Object { dynamic var name: String? 我有一个类(人),其中包含任何数量的另一个类(汽车)的对象。 与“人”“连接”的汽车在该人的背景下具有一些属性(并且对于同一辆汽车对于不同的人或对于两个类似的汽车对于一个人可以是不同的)。 使用List <…>()我们不能存储每个Item的属性,对吗? 如果我们只为一个人使用汽车,并且只有一次,我们可以创build另一个只包含汽车附加属性的类,并将其与人的ID和汽车的ID相链接。 但是,如果我们有两辆具有不同附加属性的类似汽车,那就没有用了。 那么,我如何看待解决scheme。 有一个表(类)存储人的ID,一辆汽车的ID和这辆车的附加属性。 对于同一个人的另一辆车,它具有相同的人员ID,车辆ID(相同或不相同)以及另一个车辆的这个实例的附加属性。 有一个问题(我的意思是一个问题)。 有了这个结构,我想查询所有的汽车从他们的附加属性,人的ID等于some_id 。 我应该怎么做? 或者也许是另一种结构(也许使用List <…>)我应该有这样的行为?

在Swift中从日历中删除提醒

我使用下面的函数来检索我的日历: func retrieveCalendar() -> EKCalendar? { appDelegate = UIApplication.sharedApplication().delegate as? AppDelegate var myCalendar: EKCalendar? let calendars = appDelegate!.eventStore!.calendarsForEntityType(EKEntityTypeReminder) as! [EKCalendar] let filteredCalendars = calendars.filter {$0.title == "MedicalCalendar"} if filteredCalendars.isEmpty { println("could not find reminder calendar 'MedicalCalendar'") return nil } else { myCalendar = filteredCalendars[0] return myCalendar! } } 但是,无论何时我将新事件添加到日历中,我都想检查它们是否已经存在。 我发现最简单的方法是删除所有提醒并重新加载新提醒。 我试过了: self.retrieveCalendar()?.reset() 但它不起作用。 我怎样才能从日历中删除提醒?(一次一个或全部一次)

表视图单元格子视图的框架更改将不会发生,直到视图确实出现

我想要更改一个UITableViewCell的子视图,当它在cellForRowAtIndexPath中设置时,使用下面的代码: cellSubView.center = CGPointZero 打印框架的坐标显示框架更新成功,但视图仍显示在界面生成器中给出的位置。 用下面的代码重写viewDidAppear函数可以解决这个问题: override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) self.tableView.reloadData() } 但是这会导致闪烁:当我改变它的一个单元格的子视图的位置时,表格视图已经出现了。 在视图出现之前如何改变框架?

ios – Swift – dequeueReusableCellWithReuseIdentifier,collectionViewController的单元格(在UIView中)滚动后不会加载

我有一个ViewController 3视图: 标题(UIView) TabBar(UIView) UIView3(UIView) 在我的UIView3我有一个collectionViewController。 一个关键的因素是,我把我的collectionViewController.scrollEnable = False因为另一方面,当我滚动,只有UIView3滚动,我希望我entier屏幕滚动(这样,如果我们足够的滚动我的标题和Tabbar被隐藏。 所以这就是我所拥有的: 这就是我的屏幕的样子: 这是完美的。 但是 ,当我向下滚动时,这应该是这样的: 但是 ,看起来像这样: 我认为我的问题来自“dequeueReusableCellWithReuseIdentifier”函数,它没有看到我正在滚动,但我不知道如何“刷新”滚动值,因此它加载单元格3-4的末尾,也单元格5- 6。 你有什么主意吗 ?

有没有办法在构build我的Cocoapod时指定另一个分支的依赖关系?

我试图build立一个Cocoapod(目前 – 这将改变当iOS 9和Xcode 7超出testing版)取决于Alamofire和SwiftyJSON的不同分支。 这是因为我的Cocoapod编码在Swift 2.0中。 更具体地说,我的pod目前依赖于swift2-0 Alamofire分支和xcode7 SwiftyJSON分支。 我的Podspecs文件目前看起来像这样: # # Be sure to run `pod lib lint ALSMAL.podspec' to ensure this is a # valid spec and remove all comments before submitting the spec. # # Any lines starting with a # are optional, but encouraged # # To learn more about […]

如何从xib调用performSegueWithIdentifier?

我有viewController与segue secondViewController名为“toSecond”。 在viewController我加载customView.xib let myCustomView = NSBundle.mainBundle().loadNibNamed("customView", owner: self, options: nil)[0] 在这个customView我有button的行动: viewController().goToSecond() 在viewController我有这个代码的function func goToSecond() { self.performSegueWithIdentifier("toSecond", sender: self) } 但是当我按下customView中的button,我成为一个错误: viewController没有标识符“toSecond” 当我直接从viewController调用这个函数都很好! 那么,我怎样才能从我的customView调用performSegueWithIdentifier? customView源代码: import UIKit class customView: UIView { @IBAction func ToSecondButton(sender: AnyObject) { viewController().goToSecond() } } viewController源代码: import UIKit class viewController: UIViewController { … let myCustomView = NSBundle.mainBundle().loadNibNamed("customView", owner: self, options: […]

Swift – 何时或如何在视图上实现animation开始?

我是Swift的新手,我试图实现一个简单的游戏。 在这个游戏中,一旦视图被加载,我想要定期的animation发生。 问题是,我尝试使用例如button.frame.origin.x += 50来设置animation的button,但不是将其从原点移动到50px,而是出现在button.frame.origin.x – 50并转到其(初始)位置。 有趣的是,在某一点上,我向用户显示一个AlertDialog ,并显示后,animation开始发生,如我所料。 我的问题和这个话题是一样的,但是接受的答案并没有为我解决。 有什么想法吗? 编辑:挖到代码和testing了很多我发现了我显示AlertDialog的方法也发生无效我的计时器。 我有两个计时器:一个更新UI时间(一个TextField),另一个执行animation。 两者都正在安排一项任务。 从我在这里读到的 ,不可能有两个这样的计时器。 一个计时器对象一次只能在一个运行循环中注册,尽pipe它可以被添加到该运行循环中的多个运行循环模式中。 因此,显而易见的解决scheme是将两个select器(函数)合并为一个,所以这个计时器将适用于这两个任务。 但是,如果我尝试更新UI并执行animation,则animation不能按预期工作。 我只是迷失在这个问题上,不能使这两件事情的工作。 这些是我的重要代码: override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) … resetOrCreateGame() } func resetOrCreateGame() { // Do stuff to initialize values timerToRotate = NSTimer.scheduledTimerWithTimeInterval(2.0, target: self, selector: "rotateBlocks", userInfo: nil, repeats: true) } func rotateBlocks() { // […]

在tapGesture动作select器中包含协议function – iOS Swift

我有一个类(FilterBar.swift)和一个viewcontroller。 viewcontroller调用该类来填充一个具有图像列表的scrollView对象,每个图像都有一个tapGestureRecognizer添加到它,如下所示: let tapGesture = UITapGestureRecognizer( target: imgView, action: Selector("filterClicked:")); tapGesture.numberOfTapsRequired = 1; tapGesture.numberOfTouchesRequired = 1; imgView.addGestureRecognizer(tapGesture); 我也有一个在FilterBar中的函数,如下所示: @objc func filterClicked(sender: UITapGestureRecognizer) { print(sender.view?.superview?.description) print("sent from view: \(sender.view!.tag)"); } 当我尝试点击图片时出现以下错误: 2016-03-16 02:06:45.800 ImageFilter[71811:6885004] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImageView delegate.filterClicked:]: unrecognized selector sent to instance 0x7fc07951f010' 所以我想也许我需要一个协议,所以我在FilterBar中创build了一个协议如下: protocol FilterClickedDelegate { func […]

Swift – 有一个audio重复,但它会间隔?

在Swift中 ,我播放了一首歌,它在viewDidLoad中播放。 它长16秒,全部播放16秒。 我希望它永远重复。 我做了一个NSTimer ,每16秒播放一首歌。 但是,当应用程序加载时,它播放16秒,停止16秒,播放等。 println("just doing some dandy debugging here.") 行 println("just doing some dandy debugging here.") 每16秒打印一次。 这是如何修复的? 码: //these var's are created on the top of the file. var soundTimer: NSTimer = NSTimer() var audioPlayer2 = AVAudioPlayer() var soundTwo = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("sound", ofType: "wav")) //this stuff is in the viewDidLoad […]

UICollectionView:更改自定义单元格中的sizeForItemAtIndexPath

关于模型 – 视图 – 控制器(MVC)的一个非常基本的问题。 我有一个自定义UICollectionView填充自定义UICollectionViewCells 。 集合视图定义了UICollectionViewDelegateFlowLayout方法中的单元格的大小,即collectionView: sizeForItemAtIndexPath 。 同时,通过自定义收集单元视图控制器添加和删除子视图。 我的问题:当从单元格的视图控制器添加或删除子视图,我怎么也告诉集合视图控制器更改高度? 我明白委托和数据源的概念,但认为单元格是它自己的委托,所以当添加子视图时,如何将消息(“更改高度…”)从单元传递到集合视图控制器。去掉?