小编Pre*_*sus的帖子

等待在Swift中完成异步操作

我不知道如何处理这种情况,因为我是iOS开发和Swift的新手.我正在执行数据提取,如下所示:

func application(application: UIApplication!, performFetchWithCompletionHandler completionHandler: ((UIBackgroundFetchResult) -> Void)!)
{
    loadShows()
    completionHandler(UIBackgroundFetchResult.NewData)
    println("Background Fetch Complete")
}
Run Code Online (Sandbox Code Playgroud)

我的loadShows()函数解析从加载到UIWebView的网站获得的一堆数据.问题是我有一个在loadShows函数中等待10秒左右的计时器.这允许在我开始解析数据之前完全加载页面中的javascript.我的问题是完成处理程序在我的loadShows()之前完成.

我想要做的是为"isCompletedParsingShows"添加一个bool,并使completionHandler行等待完成,直到该bool为真.处理这个问题的最佳方法是什么?

asynchronous ios swift

23
推荐指数
1
解决办法
4万
查看次数

从Swift中的AppDelegate获取ViewController的实例

我试图在用户单击UILocalNotification时从swift中的app delegate加载特定的ViewController.我已经发现在这个函数中调用了它:

func application(application: UIApplication!, didReceiveLocalNotification notification: UILocalNotification!)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试访问其中一个打开的ViewControllers时,我认为它返回null,因为我的应用程序正在崩溃.这是我正在尝试的:

var rootViewController = self.window!.rootViewController
var storyBoard = rootViewController.storyboard
var setViewController = storyBoard.instantiateViewControllerWithIdentifier("CurrentShows") as ViewController_CurrentShows

rootViewController.navigationController.popToViewController(setViewController, animated: false)
setViewController.reloadData()
Run Code Online (Sandbox Code Playgroud)

它在popToViewController行崩溃了.

ios appdelegate swift

19
推荐指数
1
解决办法
3万
查看次数

如何在Swift中使用UILocalNotification

我试图弄清楚如何在swift中设置UILocalNotification,但我没有很多运气.我在尝试这个:

var notification = UILocalNotification()
notification.timeZone = NSTimeZone.defaultTimeZone()
var dateTime = NSDate.date()
notification.fireDate(dateTime)
notification.alertBody("Test")
UIApplication.sharedApplication().scheduleLocalNotification(notification)
Run Code Online (Sandbox Code Playgroud)

首先,我不确定这是否是获取当前日期时间的正确方法.在.Net中,我只会做DateTime.Now().

其次,当我尝试这个时,我得到一个错误,上面写着:

'(@lvalue NSDate!) - > $ T3'与'NSDate'不同

不幸的是,我不知道这意味着什么或如何继续.

ios uilocalnotification swift

10
推荐指数
2
解决办法
1万
查看次数

每次调试测试后文档位置更改

在我的应用程序中,我从Internet下载图像并将其存储在文档目录中.强制关闭应用程序并再次调试后,文档目录的位置似乎发生了变化.我相信每次调试应用程序时都会分配一个新的应用程序ID ...这是正常行为吗?

我在CoreData中存储图像文件路径,然后当我加载它时,我打印filePath以帮助我调试,这是我看到的:

/ var/mobile/Applications/37A083EC-ED2E-4B40-80E3-E1E813AB3D1E/Documents/2740-Chris Robinson Brotherhood.jpg

如果我停止调试,并且在我真正的iPhone上我强制关闭应用程序,并再次调试我存储在CoreData中的文件路径保持与上面相同,但是当我将文档目录作为测试引用时,看来应用程序ID已更改:

在/ var /移动/应用/ D952D72B-E3AD-4085-99FD-7C06000DA66C /文档

我怎么能绕过这个?

xcode ios swift

8
推荐指数
1
解决办法
854
查看次数