草庐IT

ios - 来自 HealthKit 的数据最初丢失,然后在我再次尝试时出现 - 如何修复?

我有一个用Swift开发的iOS应用程序,作为该应用程序的一部分,它会收集当天的步数。我第一次运行该应用程序时,计数为“0”,但如果我在界面中单击一个按钮以重新运行此查询HK的函数,则会出现正确的数字。我猜这是因为HK需要一些时间来收集数据之类的,但我不确定如何修复它。也许HK可以在数据准备好时触发一个事件,然后我可以更新UI?下面是从HK收集数据的例程。该函数在应用程序启动时立即执行(它显示“今天0步”),然后如上所述,我可以点击一个按钮再次执行该函数(然后我得到正确的数字)。funcqueryStepsSum(){//prepareHKforthedataletendDate=NS

ios - 在两个 View Controller 之间同步数据以避免再次创建相同的观察者

在我的主要VC中,我在我的FB数据库中查找更改,如下所示:ref.child("posts").observe(.childChanged,with:{(snapshot)in.......})我可以从这个VC输入VC2,它在我的segue中设置为“模态呈现”。现在我想知道我是否可以将现场FB数据从VC1传递到VC2?我知道我可以使用segue.identifier并在我转到下一个VC时传递数据,但这只是一次发送。或者我应该设置一个委托(delegate)来从vc1获取数据到vc2?那么有什么方法可以在节点更新后将数据从VC1发送到VC2,或者我必须在VC2中设置一个新的.observ

ios - 身份验证失败,再次尝试 Face Id 什么都不做

我只是按照本教程通过FaceID对用户进行身份验证,但实际上它在身份验证失败后无法使用“再次尝试FaceID”按钮,回调未被调用,我不知道为什么。这是代码:@IBActionfunctouchIdAction(_sender:UIButton){print("hellothere!..YouhaveclickedthetouchID")letmyContext=LAContext()letmyLocalizedReasonString="BiometricAuthnticationtesting!!"varauthError:NSError?if#available(iOS8.0,ma

ios - 再次出示 Game Center 身份验证

我在这里遇到了一个小问题,我希望有人能帮我找出问题所在。*下面给出的测试项目可以在这里找到:http://goo.gl/wz84aA(法国)或https://goo.gl/0m8LrZ(Mega.NZ)*我正在尝试向用户展示apple为GameCenter功能提出的身份验证ViewController。更准确地说,如果他第一次取消它,则重新呈现它。我有一款游戏的Storyboard是这样的:游戏导航Controller:classGameNavigationController:UINavigationController{overridefuncviewDidLoad(){super

swift - 在按下主页按钮时暂停 NSTimer,并在应用程序处于前台后再次启动它们

我一直在寻找一种解决方案,以便在用户“按下”游戏时暂停我的SpriteKit游戏。到目前为止,我找到了一个解决方案,您可以使用SKAction而不是NSTimer,只要操作之间的时间保持不变,它就可以工作。但是,我的NSTimer的速度发生了变化。所以我需要找到另一个解决方案。我有一堆NSTimer位于GameScene->didMoveToViewNSTimer.scheduledTimerWithTimeInterval(0.2,target:self,selector:Selector("SpawnBullets"),userInfo:nil,repeats:true)NSTim

ios - 避免在单元格处于 View 中时再次获取图像

当表格行进入View时,我已经设法让一些代码在获取Instagram图片(通过Alamofire)的地方工作。但是,一旦获取,我不希望在再次看到表行时进行另一个调用。我怎样才能避免这种行为?overridefunctableView(_tableView:UITableView,willDisplaycell:UITableViewCell,forRowAtindexPath:IndexPath){leturl=places[indexPath.row].urlifletc=cellas?PlaceTableViewCell{print("DownloadingImage")Alamo

ios - 媒体播放器过滤和预置专辑播放专辑、随机歌曲,然后再次播放专辑

我正在尝试制作一个音乐播放器,目前我一直在过滤专辑并将专辑添加到播放列表。我想做的是随机播放音乐,然后当用户点击一个按钮时,仅继续播放当前正在播放的专辑中的歌曲,当它完成时,我想知道它已完成,以便我可以更改UI元素,然后继续播放音乐库中的所有音乐。但是,会发生什么情况是它会播放专辑中的其余歌曲然后当它用完该专辑中的所有歌曲时将随机播放一首歌曲然后一首随机歌曲将返回到该专辑..go通过它的整体,然后随机播放歌曲。完成专辑后,它只会播放随机歌曲。我有一个单例funcgetAllSongs(completion:@escaping(_songs:[MPMediaItem]?)->Void){

ios - 从编辑场景中展开后, TableView 单元格为空白。如果终止应用程序并再次打开,Table View 会正确显示

我在最新的Xcode和Swift2.1中遇到了一个奇怪的问题。我有一个包含照片的表格View。可以点击它的单元格来编辑它。编辑后,例如更改照片或文本,然后展开到tableview。单元格为空。我终止应用程序并再次打开应用程序。TableView显示正确。我可以在编辑的单元格中看到新照片和新文本。所以这意味着保存没有问题。我使用reloadRowsAtIndexPaths来刷新编辑的单元格。下面是我的代码。@IBActionfuncunwindToTableView(sender:UIStoryboardSegue){ifletsourceViewController=sender.so

swift - 使用 AVPlayer swift 完成后再次播放音频

如何在完成后再次播放相同的音频?现在我将这段代码与AVPlayer一起使用:fileprivatefuncplay(){guardleturl=URL(string:record.recordUrl)else{return}letplayItem=AVPlayerItem(url:url)player.replaceCurrentItem(with:playItem)NotificationCenter.default.addObserver(self,selector:#selector(playerDidFinishPlaying),name:NSNotification.Name

java - 停止线程并再次开始在黑莓中给出 IllegalThreadStateException

我在使用以下代码时遇到IllegalThreadStateException异常:我已经启动了这个线程一次(通过使用thread.start())并再次尝试在另一个地方启动它,所以使用了以下代码:thread.interrupt();thread.start();但是thread.start()抛出IllegalThreadStateException。我应该用什么来解决? 最佳答案 Thread对象只能启动一次。如果您需要停止/中断一个Thread,然后又想重新启动它,您应该创建一个新实例,并在其上调用start():thread