Tag: swift

在OSX 10.10.4上的Xcode 7.0 beta(7a176x)中arc4random_uniform不可用

我正在尝试在所提到的Xcode构build中使用arc4random_uniform ,但似乎不再可用: 点击可用的函数表明它们是在stdlib.h中声明的,它们列出如下: 这似乎很奇怪,它不再可用。 这个特殊的stdlib.h在usr/include/stdlib.h的iOS 9.0模拟器目录下,不知道是否有帮助。 我有最新的命令行工具安装。 不知道发生了什么事。 任何意见/帮助/修复非常感激。 提前致谢。 UPDATE 似乎是一个Xcode错误,其参考是: 22275032 22275176

Swift:如何在UITabBarItem被按下时执行一个动作

目前我有一个连接到桌面视图控制器的选项卡栏控制器。 我正在试图去当我按下标签栏项目的桌面视图的顶部。 我知道如何到达桌面的顶部。 我只是不知道如何做一个动作,当项目被按下。

NSDateFormatter.dateFromString返回特定语言的特定date为零

我真的不知道这个代码发生了什么,我试图将string转换为date。 我不明白的是,转换适用于大多数date,但不能专门为两个date。 let dateFormatter = NSDateFormatter() dateFormatter.locale = NSLocale(localeIdentifier: "es") dateFormatter.dateFormat = "dd 'de' MMMM" dateFormatter.dateFromString("1 de octubre") dateFormatter.dateFromString("2 de octubre") dateFormatter.dateFromString("3 de octubre") dateFormatter.dateFromString("4 de octubre") dateFormatter.dateFromString("5 de octubre") dateFormatter.dateFromString("6 de octubre") dateFormatter.dateFromString("7 de octubre") dateFormatter.dateFromString("8 de octubre") dateFormatter.dateFromString("9 de octubre") dateFormatter.dateFromString("10 de octubre") dateFormatter.dateFromString("11 de octubre") dateFormatter.dateFromString("12 de octubre") dateFormatter.dateFromString("13 de octubre") dateFormatter.dateFromString("14 […]

用于CFunctionPointer的Objective-C包装到Swift Closure

我在玩Swift,注意到Swift不允许创buildCFFunctionPointers。 它只能通过和参考现有的。 例如CoreAudio需要CFunctionPointer来确定callback,因此我不能使用纯Swift。 所以我需要使用一些Objective-C的蹦床或包装,这需要一个Swift Closure作为参数,以及原始的callback原型,然后可以被指定为callback,但实际的行动发生在Swift而不是Objective-C 。 我该怎么做呢? 这样的包装的一些示例代码将帮助我了解如何从目标C中使用Swift代码用于这种目的以灵活的方式解决Swift无法创buildCFunctionPointers。 是的,我知道我只需要在Objective-C中写需要的东西。 我想在纯Swift中做一个学习练习,将我的一个应用程序移植到Swift(使用大量的CoreAudio / CoreVideo框架)。

如何在iOS 10 UserNotifications上设置NSCalendarUnitMinute repeatInterval?

在UILocalNotification我们使用NSCalendarUnitMinute像重复…..但我找不到iOS 10 UserNotification文档 …我怎样才能使用NSCalendarUnitMinute像在iOS 10 UserNotification重复? 这里是在晚上8点30分安排当地通知的代码,并在每一分钟后重复。 UILocalNotification* localNotification = [[UILocalNotification alloc] init]; localNotification.fireDate = pickerDate; localNotification.alertBody = self.textField.text; localNotification.timeZone = [NSTimeZone defaultTimeZone]; localNotification.repeatInterval = NSCalendarUnitMinute; localNotification.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1; [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];

私有区域的CKQuery只返回来自CloudKit的前100条CKRecords

对Cloudkit私有默认区域的查询结果是否有限制? 我不知道为什么我只收到前100个logging与以下查询: let p = NSPredicate(format: "(type == 'entered') AND (timestamp >= %@) AND (timestamp <= %@)", from, to) let q = CKQuery(recordType: self.beaconRecordType, predicate: p) q.sortDescriptors = [NSSortDescriptor(key: "timestamp", ascending: true)] self.privateDatabase?.performQuery(q, inZoneWithID: nil, completionHandler: { results, error in //count = 100 println(results.count) } 好的。 正如Edwin在答案中提到的,解决scheme是使用CKQueryOperation获取数据的初始块,然后使用completionBlock中的“游标”来触发另一个操作。 这里是一个例子: UPDATE func fetchBeacons(from:NSDate, to:NSDate) { let p […]

在Swift中使用imagePickerController在同一视图控制器中select两个不同的图像

我正在做一个应用程序,其中有两个UIImageViews。 在每个图像视图中,用户需要能够input不同的图像。 这是我到目前为止的代码。 var imagePicker = UIImagePickerController() @IBAction func chooseImage1(sender: AnyObject) { if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.SavedPhotosAlbum){ println("Button capture") imagePicker.delegate = self imagePicker.sourceType = .SavedPhotosAlbum imagePicker.allowsEditing = false self.presentViewController(imagePicker, animated: true, completion: nil) } } @IBAction func chooseImage2(sender: AnyObject) { if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.SavedPhotosAlbum){ println("Button capture") imagePicker2.delegate = self imagePicker2.sourceType = .SavedPhotosAlbum imagePicker2.allowsEditing = false self.presentViewController(imagePicker, animated: true, completion: nil) […]

Swift:使用button导航到新的ViewController

我有一个单一的视图应用程序连接到parsing和validation用户login信息,并更新一个UILabel说:“耶,你已经成功login” – 现在我想它导航到一个新的视图(这将是该应用程序)。 我已经把一个新的视图控制器拖到故事板上,并按住Ctrl键拖动button,并用show将它链接到新的控制器。 不过,当我加载应用程序,然后单击button,它会直接进入新的视图。 我需要它只在if-else语句的右边部分被触发时才会去那里。 这有道理吗? 感谢任何帮助家伙。 非常感激。 编辑 if语句是: if usrEntered != "" && pwdEntered != "" { PFUser.logInWithUsernameInBackground(usrEntered, password:pwdEntered) { (user: PFUser!, error: NSError!) -> Void in if user != nil { self.messageLabel.text = "You have logged in"; } else { self.messageLabel.text = "You are not registered"; } } } 并位于ViewController.swift文件中

以编程方式切换Swift中的选项卡

我需要编写一些代码,以便在iOS应用程序启动时将视图切换到另一个选项卡(例如,默认显示第二个选项卡,而不是第一个选项卡)。 我是新来的Swift,并已经制定了以下内容: 代码可能应该在第一个选项卡的ViewController的覆盖func viewDidLoad()函数中进行。 下面的代码显示了第二个ViewController,但不是底部的标签栏(vcOptions是第二个ViewController标签项: let vc : AnyObject! = self.storyboard.instantiateViewControllerWithIdentifier("vcOptions") self.showViewController(vc as UIViewController, sender: vc) 我想答案可能在于使用UITabbarController.selectedIndex = 1,但不太清楚如何实现这个。

如何使用AVURLAssetstream式传输video并将caching的数据保存到磁盘

前几天我被要求检查一下从网上下载video有多困难。 我知道这是一件容易的事,因为前一阵子有人告诉我。 所以,我检查,这是超级简单。 问题是,我想保存到磁盘的video,不要强迫用户下载一次又一次。 问题是访问缓冲区并将其存储到磁盘。 在Stackoverflow许多答案说,这也是不可能的。 特别与video。 我的原始代码播放video: import AVFoundation …. //MARK: – Accessors lazy var player: AVPlayer = { var player: AVPlayer = AVPlayer(playerItem: self.playerItem) player.actionAtItemEnd = AVPlayerActionAtItemEnd.None return player }() lazy var playerItem: AVPlayerItem = { var playerItem: AVPlayerItem = AVPlayerItem(asset: self.asset) return playerItem }() lazy var asset: AVURLAsset = { var asset: […]