Tag: 迅速

什么时候使用快速closures?

我已经去了几个月的开发,并渴望在我的编程模式中实现新的东西。 现在我正在学习闭包,并且对它的语法知之甚less,知道它可以用来代替callback。 以及在一些UIViewAnimation和分类中实现它。 但是,我真的想知道它的用途,除此之外,我们应该在我们的基本编程中使用闭包。 就像我们使用委托,当我们想从孩子发送信息到家长..所以任何解释或简短的例子,其实际上可以用在我们的日常快速编程会有帮助吗? 谁能告诉我这些封闭是如何计算价值的 reversed = sorted(names, { (s1: String, s2: String) -> Bool in return s1 > s2 } ) 在这些例子中,名称和闭包作为一个方法的参数..但是,这实际上是如何计算的? 你能解释一下在这个animation代码中通过闭包的过程是如何工作的吗? UIView.animateWithDuration(duration: NSTimeInterval, animations: (() -> Void)?, completion: ((Bool) -> Void)?) 我真的想知道stream量?

从应用程序代表快速执行Segue

我需要从应用程序代理启动一个视图控制器。 在视图控制器之间执行segue的方式。 我有一个if语句,如果真的需要显示一个视图控制器,这是在应用程序委托。 我如何从应用程序委托做到这一点?

如何在Swift中注册NSUndoManager?

如何在Swift中使用NSUndoManager ? 这是我试图复制的一个Objective-C示例: [[undoManager prepareWithInvocationTarget:self] myArgumentlessMethod]; 但是,Swift似乎没有NSInvocation ,这(看起来)意味着我不能在undoManager上调用它没有实现的方法。 我已经在Swift中尝试了基于对象的版本,但似乎让我的游乐场崩溃了: undoManager.registerUndoWithTarget(self, selector: Selector("myMethod"), object: nil) 但是,它似乎崩溃,即使我的对象接受AnyObject?types的参数AnyObject? 在Swift中做这个最好的方法是什么? 有没有办法避免发送不必要的对象与基于对象的注册?

types'Any'在更新到Swift 3后没有下标成员

这是我在Swift中的代码: currentUserFirebaseReference.observeSingleEvent(of: .value, with: { (snapshot: FIRDataSnapshot) in let UID = snapshot.key let pictureURL = snapshot.value!["pictureURL"] as! String let name = snapshot.value!["displayname"] as! String let currentUser = Person(name: name, bio: "", UID: UID, pictureURL: pictureURL) self.currentUserInfo = currentUser }) 我刚更新到Xcode 8 / Swift 3,这似乎导致了以下错误信息: “types”任何“没有下标成员” 我在代码中的很多地方调用snapshot.value!["在这里插入东西"] ,我得到这个错误,我不能运行我的代码。 以下代码工作: let pic = (snapshot.value as? NSDictionary)?["pictureURL"] as? […]

如何以编程方式解除UIAlertController没有任何button?

我提出一个UIAlertViewController没有任何button,因为它应该只是通知用户正在进行上传。 该应用程序应该上传一些文件到Amazon S3(有些事情发生在并行线程上),恐怕当我想解雇它的时候,对alert视图控制器的引用会丢失。 任何想法可能是错的? 我甚至不知道如何debugging,因为在debugging区没有错误? 我有一个类级别的属性: var uploadInProgressAlert = UIAlertController() 我使用此代码来显示我的警报没有button(它的工作原理): self.uploadInProgressAlert = UIAlertController(title: "Uploading", message: "Please wait.", preferredStyle: .Alert) self.presentViewController(self.uploadInProgressAlert, animated: true, completion: nil) 此代码是closures警报(警报不会被驳回): self.uploadInProgressAlert.dismissViewControllerAnimated(false, completion: nil) 在这个线程: iOS解雇UIAlertController响应某人谈论“持有参考”的事件。 我不知道这意味着什么“保持参考”,我认为这可能是问题的根源。 编辑:我已经把上面的代码在一个简单的testing应用程序,它在那里工作。 但是,当一些并行线程变得复杂时,我无法find解决警报的方法。 var delay4s = NSTimer() var delay8s = NSTimer() var alert = UIAlertController() func showAlert() { if NSClassFromString("UIAlertController") != nil { alert […]

如何访问Xcode 6中的生成设置?

如何访问构build设置variables(即为不同的Debug与Release环境定义Web服务的基本URL)似乎有很多变化。 我在Project – > Building Settings中创build了一个User-Definedvariables,每个环境一个。 我们称之为WEB_SERVICE_BASE_URL 。 我如何在代码中访问它? 我正在使用XCode 6和Swift。 我试过这个,但是不起作用 let api_key = ${WEB_SERVICE_BASE_URL} 我也试过这个,也不起作用 let api_key = NSUserDefaults.standardUserDefaults().stringForKey("WEB_SERVICE_BASE_URL") 有什么build议么? 这似乎是一个经常需要的解决scheme,在Rails中非常容易,但在iOS开发中却不那么容易。

不推荐使用iOS9的sendSynchronousRequest

警告:在iOS 9.0中不推荐使用“sendSynchronousRequest(_:returningResponse :)”:使用[NSURLSession dataTaskWithRequest:completionHandler:](请参阅NSURLSession) urlData = try NSURLConnection.sendSynchronousRequest(request, returningResponse:&response) 任何想法如何摆脱这个警告? 我刚刚从Swift 1.2升级到Swift 2 更新:Fonix被标记为我最好的答案。 如果你试图添加一个try语句,我修改他的答案如下: urlData = try NSURLSession.dataTaskWithRequest(<#request: NSURLRequest#>, completionHandler: <#((NSData!, NSURLResponse!, NSError!) -> Void)?##(NSData!, NSURLResponse!, NSError!) -> Void#>)

RLMException,对象types需要迁移

我有一个对象NotSureItem,其中我有三个属性'标题'的名字是从'文本'和textDescription我已经添加了以后和一个dateTime属性重命名。 现在,当我要运行我的应用程序时,它会崩溃,当我想添加一些东西到这些属性。 它显示以下语句。 对象types“NotSureItem”需要迁移,原因如下: – 最新的对象模型缺less属性“文本”。 – 属性“标题”已被添加到最新的对象模型。 – 属性“textDescription”已被添加到最新的对象模型。 这里是我的代码: import Foundation import Realm class NotSureItem: RLMObject { dynamic var title = "" // renamed from 'text' dynamic var textDescription = "" // added afterwards dynamic var dateTime = NSDate() }

如何在swift中将视图控制器popup到以前的视图控制器之一?

我一直在试图将我的视图控制器popup到我的视图堆栈中以前的视图控制器之一。 假设在我的视图栈中有第一个VC,第二个VC,第三个VC和第四个VC视图控制器 。 当前视图控制器是第四个,在第四个VC中有一个tableview。 如果用户删除tableview中的所有行,我应该引导用户到secondVC 。 我有一个想法,我会创build另一个导航控制器 ,并presentViewController命令。 但是,这不是我的问题的解决scheme。 因为我认为这种情况下出现导航问题。 我如何find这个案例的最佳解决scheme? 谢谢你的回答,最好的问候

遵循Swift中ViewController中的协议

试图符合Swift UIViewController子类中的UITableViewDataSource和UITableViewDelegate。 class GameList: UIViewController { var aTableView:UITableView = UITableView() override func viewDidLoad() { super.viewDidLoad() aTableView.delegate = self aTableView.dataSource = self self.view.addSubview(aTableView) //errors on both lines for not conforming } } 文档说,你应该遵循以下方面的class :但通常是超类的地方。 另:不起作用。 在超类之后使用逗号分隔列表也不起作用 编辑: 在下面find答案。 class GameList: UIViewController, UITableViewDataSource, UITableViewDelegate { 还必须采用每个协议的所有必需的方法,我最初并没有这样做。