jjzjj

NotificationCenter

全部标签

ios - NotificationCenter 观察者使用 ARC 阻止 dealloc

我正在尝试调试我最近转换为使用ARC的项目。我很难确定为什么对象没有被释放并保留在内存中(有没有一种简单的方法可以查看是什么引用将对象保留在内存中?)通知中心链接似乎有一个问题。在viewDidLoad上,我注册了三个通知:[notificationCenteraddObserverForName:kAudioPlaybackStartobject:nilqueue:[NSOperationQueuemainQueue]usingBlock:^(NSNotification*note){[selfhandle_PlaybackStateStart:nil];}];[notificati

ios - 段错误 : 11; (xcode 8, Swift 3) 使用 NotificationCenter 后

在Xcode8中获取段错误我最近将我的项目迁移到了Swift3。Xcode版本8.0(8A218a)每当我使用UIKeyboardWillShow通知时,我都会收到此错误:Commandfailedduetosignal:Segmentationfault:11`这就是我在代码中使用通知的方式:overridefuncviewWillAppear(_animated:Bool){NotificationCenter.default.removeObserver(NSNotification.Name.UIKeyboardWillShow)NotificationCenter.defau

ios - 删除 NotificationCenter 的观察者 - "Variable used within its own initial value"

我不明白如何使用block删除通知的观察者。varblock=NotificationCenter.default.addObserver(forName:.notifName,object:obj,queue:OperationQueue.current,using:{notificationinNotificationCenter.default.removeObserver(block)//Dostuff})这会出现编译器错误“变量在其自身的初始值内使用”。我怎样才能删除这个观察者? 最佳答案 编译器提示是因为它“不知道”闭包

ios - 使用 NotificationCenter 的加载器

我有代码:主视图.swift:overridefuncviewWillAppear(_animated:Bool){super.viewWillAppear(true)//RegistertoreceivenotificationNotificationCenter.default.addObserver(self,selector:#selector(MainViewControler.StartUpdatingSplash),name:NSNotification.Name("StartUpdatingSplashNotificationName"),object:nil)//ne

ios - 如何使用 Selector 和 NotificationCenter 调用可选函数

语言:Swift3IDE:XCode8.3.2(8E2002)我有一个带有可选函数的协议(protocol)foo@objcprotocolSomeProtocol{@objcoptionalfuncfoo(_notification:Notification)}extensionSomeProtocol{funclistenToFoo(){NotificationCenter.default.addObserver(self,selector:#selector(self.foo(_:)),name:NSNotification.Name(rawValue:"UltimateNoti

ios - Swift 3,NotificationCenter 观察者缺少发布的通知

Swift3中的NotificationCenter似乎有一些变化,我似乎不太正确。使用:AppleSwiftversion3.0.2(swiftlang-800.0.63clang-800.0.42.1)我有一个单例对象:classNotifications{privatestaticletpipeline=Notifications()...接收订阅NotificationsPipelineProtocol的项目并将其排入队列。(它们都是纯swift,这里没有Objective-CNSObject。)privatefuncenqueueNotification(_notificat

iOS swift : Value of type 'NotificationCenter' has no member 'publisher'

我正在尝试将新的Combine框架与NotificationCenter一起使用,正如Apple在这段视频中所解释的那样:https://developer.apple.com/videos/play/wwdc2019/721/您可以在幻灯片21中找到它。看来我的项目没有读取Combineframeworkapi。importCombineimportFoundationlettrickNamePublisher=NotificationCenter.default.publisher(for:.newTrickDownloaded)我收到这个错误:“NotificationCente

swift - NotificationCenter 将 swift 3 迁移到 swift 4.2 的问题

这个问题在这里已经有了答案:Type'NSNotification.Name'hasnomember'keyboardDidShowNotification'(6个答案)关闭4年前。我在尝试将我的代码从Swift3迁移到Swift4.2时遇到问题这里是当前要迁移的代码:fileprivatefuncobserveKeyboardNotifications(){NotificationCenter.default.addObserver(self,selector:#selector(keyboardShow),name:.UIKeyboardWillShow,object:nil)No

swift - 按名称删除使用闭包语法创建的 NotificationCenter 观察器是否足够?

我有一些使用block/尾随闭包语法创建的通知,如下所示:NotificationCenter.default.addObserver(forName:.NSManagedObjectContextObjectsDidChange,object:moc,queue:nil){notein//implementation}我后来按名称删除了它,如下所示:NotificationCenter.default.removeObserver(self,name:NSNotification.Name.NSManagedObjectContextObjectsDidChange,object:m