草庐IT

nsnotifications

全部标签

ios - 通过 NSNotification 从 UICollectionView 中删除单元格

我有一个简单的基于UICollectionView的应用程序——为简单起见,一个UICollectionView和一个基于NSMutableArray的数据模型。我可以通过didSelectItemAtIndexPath:委托(delegate)方法毫无问题地删除单元格:-(void)collectionView:(UICollectionView*)collectionViewdidSelectItemAtIndexPath:(NSIndexPath*)indexPath{[self.dataremoveObjectAtIndex:[indexPathrow]];[self.coll

ios - Swift 从永远不应该返回 nil 的 NSNotification() 实例化中返回 nil

这发生在Swift1.1中,在下面的代码中,“theNotification”偶尔会返回nil,这会导致NSNotificationCenter.postNotification()崩溃。我不知道为什么,因为它很少见,可能是因为代码在iOS8键盘扩展中,但我不知道为什么这很重要。classfuncsendNotificationValue(name:String,value:Int){letnotificationQ=NSNotificationCenter.defaultCenter()letuserDict=["value":value]lettheNotification=NSN

ios - NSNotification 延迟

如何延迟发布NSNotification。我想到的一个解决方案:-在performSelectorAfterDelay方法中发布通知。有没有更好的解决方案。是NSNotificationQueue可以帮助我实现这一目标吗? 最佳答案 利用GCD的dispatch_after()方法。在Objective-C中,这看起来像:dispatch_after(dispatch_time(DISPATCH_TIME_NOW,(int64_t)(5.0*NSEC_PER_SEC)),dispatch_get_main_queue(),^{[[N

ios - 我是否过度使用 NSNotifications

我最近发现在我的iOS应用程序中制作非常自定义的布局时使用NSNotifications的好处。我现在使用它们来发送数据而不是使用委托(delegate)。例如,我在一个Controller中有一个UIScrollView,它会改变另一个viewcontroller中图片的alpha,所以我只是在ScrollView滚动时发送通知,例如funcscrollViewDidScroll(scrollView:UIScrollView){letuserInfo=["ScrollView":scrollView]NSNotificationCenter.defaultCenter().post

ios - NSNotification 被解雇了不止一次?

我正在为测试项目创建示例播放器。我创建了一个NSNotification来调用一个函数来播放数组中的下一个音轨。问题是通知连续调用此函数大约8次?我不知道为什么会这样。这是我的代码,感谢您的帮助!letplayer=AVPlayer()varurlPlayerItems=[String]()varcurrentTrack:Int=0overridefuncviewWillAppear(_animated:Bool){super.viewWillAppear(animated)//CheckstoseeifplayerreachedendNotificationCenter.defaul

ios - 如何编写异步接收nsnotification的单元测试?

我用完成处理程序调用restweb服务,如果成功我发送NSNotification。问题是如何编写单元测试来断言成功时发送通知。我们将不胜感激。 最佳答案 您可以为通知添加期望:expectationForNotification("BlaBlaNotification",object:nil){(notification)->Boolin//callthemethodthatfetchesthedatasut.fetchData()waitForExpectationsWithTimeout(5,handler:nil)但我个人认

Swift 2 到 Swift 3 NSNotification/通知

在Swift3.0的ElCapitan编码下使用XCode8beta6尝试将项目中的这些行从Swift2.0转换为Swift3.0letuserInfo=["peer":peerID,"state":state.toRaw()]NSNotificationCenter.defaultCenter.postNotificationName("Blah",object:nil,userInfo:userInfo)所以我设法拼凑了这个...publicclassMyClass{staticletmyNotification=Notification.Name("Blah")}letuserI

objective-c - NSNotification VS KVO

我觉得我没有完全理解KVO和NSNotification之间的区别...它们看起来很相似...您能否举例说明何时最好使用一种方法以及何时使用另一种方法?我不会谈论Bind和IB,但我的意思是使用NSNotificationCenter或KVO在我的代码中以编程方式添加Observer[self.preferenceControlleraddObserver:selfforKeyPath:@"color"options:NSKeyValueObservingOptionOldcontext:@"Color-change"]; 最佳答案

ios - 如何在 swift 3 中从 NSNotification 获取用户信息

我在swift3中遇到了这个错误:Cannotconvertvalueoftype[AnyHashable:Any]totypeNSDictionaryincoercion.我的代码是:funcdownloadProgress(notification:NSNotification){ifletuserInfo=notification.userInfoasNSDictionary{print(userInfo)//[AnyHashable("progressPercentage"):0.82530790852915281]ifletprogressValue=userInfo["pr

iphone - 是否可以通过 nsnotification 将数组作为 obj 传递

我可以通过使用协议(protocol)和委托(delegate)来做到这一点,但我想尝试使用NSNotification我的任务是通过通知将NSMutableArray从一个View发送到另一个View。是否可以做[[NSNotificationCenterdefaultCenter]postNotificationName:@"reloadData"object:myArray];然后,在接收器中,我怎样才能得到传递过来的myArray。我正在阅读并对通知对象的userInfo和object感到困惑。请就此问题向我提出建议。 最佳答案