视图控制器有时收不到 NSNotification

2023-12-30

所以,我只是在各种情况下测试 NSNotifications,而这个令人困惑。如果您能帮助我理解 NSNotifications,我将不胜感激!

我有一个导航控制器。

我有一个名为“Add”的 UIBarButtonItem,它发布通知 DidAddNotification

如果我单击“添加”,它会将我推到 view2。

 // I add view2 as observer and write method for this and NSlog if it gets implemented //

我再次强迫自己去看3。

// I add view3 as another observer and use the same method as the previous view and I NSlog if it gets implemented//

从视图 3 中,我 popToRootViewControllerAnimated:YES 然后回到视图 1,并再次遵循相同的过程。

所以控制是这样的......

1 -> 2 -> 3 -> 1

if I press add again,

the control is again the same 1 -> 2-> 3-> 1

这是输出(NSLogs) :

我第一次按添加:

2011-06-09 14:47:41.912 Tab[5124:207]  I am the notification in view2
2011-06-09 14:47:41.912 Tab[5124:207]  I pressed Add Button and I just sent a notification from view 1
  // No notification in view 3 ?? //  I am now back to view 1.

我再次按添加:

2011-06-09 14:47:51.950 Tab[5124:207] I am the notification in view3
2011-06-09 14:47:51.951 Tab[5124:207]  I pressed Add Button and I just sent a notification from view 1
 // No Notification in view 2 ??? // ... I am now back to view 1.

我再按一次“添加”:

2011-06-09 14:47:59.160 Tab[5124:207] I am the notification in view 3
2011-06-09 14:47:59.161 Tab[5124:207]  I pressed Add Button and I just sent a notification from view 1

 // No Notification in view 2 ??? //  ... I am now back to view 1.


And this goes on..

谁能告诉我为什么

  1. NSLog 第一次没有在视图 3 中打印,但其他时间都打印?
  2. 为什么 NSLog 第一次在视图 2 中打印,然后再也没有打印过?

Code:

[[NSNotificationCenter defaultCenter] postNotificationName:@"DidAddNotification" object:self];  // I put this in the - (IBAction) for addData

- (void)didPressAdd:(NSNotification *)notification { //NSLogs// }

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didPressAdd:) name:@"DidAddNotification" object:nil]; // I put this in the viewDidLoad of view 1 and view 2

您所描述的差异似乎是由于对象存活时间的变化所致。视图和视图控制器不会无限期地存在,并且不会在应用程序启动时全部创建。必须存在一个对象才能接收和记录通知。基本通知系统正在按预期工作。

如果您添加日志语句来宣布何时创建应该接收这些通知之一的对象以及何时在主体内销毁该对象,您应该能够看到生命周期对收到的消息的影响。-init(或者你的超类的指定初始化器是什么)和-dealloc.

另外:如果您使用执行日志记录的函数标记它们,您的日志语句将更容易追踪NSLog(@"%s: <message>", __func__)。编译器生成一个名为__func__对于包含函数名称的每个函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

视图控制器有时收不到 NSNotification 的相关文章

  • 用于具有转换的非导航应用程序的视图控制器/NIB 架构?

    我正在修补一个 iPad 应用程序 就像许多 iPad 应用程序一样 它不使用 UINavigation 根视图控制系统 因此我没有每个应用程序 视图 的自然所有权 我基本上有两个基本视图 文档列表视图和文档编辑视图 我正在使用 UIVie
  • Swift:检查 UISearchBar.text 是否包含 url

    如何检查 UISearchBar text 是否包含 URL 我想做这样的事情 if searchBar text NSTextCheckingType Link 但我收到错误 String is not convertible to NS
  • 访问 google reader 的 Endpoints API 时出错

    我正在尝试在iPhone APP中实现google reader 到目前为止我已经成功收到了sid and auth 当我尝试使用以下命令调用 Endpoints API 时 问题就出现了GET 这是代码 ASIHTTPRequest re
  • 如何检索 iPhone 的区域设置

    我用谷歌搜索过它 但令我有点惊讶的是我找不到它 我只想访问设备配置的区域设置 我试图找到如何列出所有系统属性 以防我能在那里找到区域设置 但甚至找不到如何做到这一点 我知道 认为 我之前检索过系统属性 但我也记得在谷歌搜索时找到该信息并不容
  • 使用 ZBarSDK 时 iPhone 相机失去自动对焦功能

    我正在开发一个应用程序 用户可以选择是否要扫描条形码或拍摄某物的照片 为了拍照 我正在使用UIImagePickerController照常 为了扫描条形码 我使用 ZbarSDK 1 2ZBarReaderViewController 拍
  • removeItemAtPath 完成

    我正在以这种方式删除路径上的文件 UIPanGestureRecognizer gesture UIPanGestureRecognizer sender UIButton button UIButton gesture view UIPa
  • 当 ViewController 从 UIStoryboard 实例化时,isMemberOfClass 返回 no

    我有一个 OCUnit 测试类 PatientTestViewControllerTests 下面是界面 interface PatientTestViewControllerTests SenTestCase property nonat
  • iPhone Twitter SDK 与 iOS 5 设备的集成问题

    我已成功将 Twitter Sharekit 与我的 iPad 应用程序源集成 当我在模拟器和装有 iOS 4 X 的 iPad 1 上测试该应用程序时 它运行完美 并且成功发布了推文 但是 如果我在装有 iOS 5 的 iPad 2 上安
  • 在成为FirstResponder或resignFirstResponder的情况下将对象保持在键盘顶部?

    我目前在键盘顶部有一个 UITextField 当您点击它时 它应该粘在键盘顶部并平滑地向上移动 我不知道键盘的具体时长和动画类型 所以确实很坎坷 这是我所拥有的 theTextView resignFirstResponder UIVie
  • 对象指针值作为字典的键

    我想使用对象的引用值作为字典的键 而不是对象值的副本 因此 我本质上想在字典中存储与另一个对象的特定实例关联的对象 并稍后检索该值 这可能吗 是不是完全违背了NSDictionary的理念 我可以看出我可能以错误的方式处理这个问题 因为字典
  • 重新启动应用程序时出现异常 SIGKILL

    我在 iPhone 模拟器中构建并运行一个项目 我通过按主页按钮将其发送到后台 然后我双击主页按钮在后台找到我的应用程序并点击它 它变得活跃并且应用程序继续运行 在这里 无论我重复多少次 我都没有问题 然后我通过点击应用程序图标上的红色小减
  • 如何去掉 UIWebView 上的状态栏背景?

    从 iOS 11 开始 当UIWebView全屏时 状态栏上会出现与屏幕颜色相同的假背景UIWebView背景 有人知道如何摆脱它吗 甚至添加IUWebView到故事板并使其全屏将使状态栏背景出现 我一直在尝试编辑 UIWebView 的大
  • 从 NavigationController 中删除 ViewController 后 AVPlayer 继续播放

    因此 我在项目中使用 ARC 当我添加 AVPlayerLayer 时 它工作得很好 但当我从 UINavigationItem 中弹出 UIViewController 时 视频继续在后台播放 有谁知道你会如何处理这个问题 这似乎是一件很
  • 在 Xcode5 中使用 XCTest 时 AFNetworking 导致错误

    我正在使用 Xcode 5 现在刚刚开始对现有项目进行单元测试 为此我添加了CocoaTouch Unit Testing Bundle作为我的项目的目标 目标名称是 MyAppTests 我之前使用添加了 AFNetworking 库Co
  • 如何确定 NSTimeInterval 是否发生在任意 NSDate 期间?

    我有一个 NSTimeInterval 我想知道该时间戳是否位于日期的开始和结束之间 基本上我需要能够做类似的事情 NSDate today NSDate date NSTimeInterval myInterval someInterva
  • 查找已用应用程序名称的捆绑包/开发人员

    我正在尝试将应用程序上传到应用程序商店并收到以下错误 很容易理解 The App Name you have entered has already been used 该应用程序不在 iTunes 上 有什么方法可以找出谁拥有该应用程序或
  • Objective-C:int值无故改变

    Objective C 我需要帮助保留 int 的值 无需我的命令 它就在我身上发生变化 最初的问题是 如何声明和保留 int 这在另一篇文章中得到了满足 Objective C 如何声明和保留 int https stackoverflo
  • ios 在后台处理推送通知

    我想保存应用程序处于后台状态时到达的推送通知 我知道关于 void application UIApplication application didReceiveRemoteNotification NSDictionary userIn
  • NSCFData fastCharacterContents 崩溃? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我目前在控制台中收到此崩溃日志 20
  • 如何将相机中的图像保存到 iPhone 图库中的特定文件夹?

    嘿 我是 iPhone 新手 最近我一直在尝试制作一个应用程序 基本上 我想要做的是 如果用户将从相机捕获任何图像 那么它应该保存在设备库中 我知道如何将照片保存在图库中 它对我有用 但我无法将所有捕获的图像保存到设备图库中的特定文件夹 例

随机推荐

  • 带有列表项的 GWT 无序列表

    我完全坚持在 gwt 中创建 css 驱动的菜单 在渲染的结果中 它应该看起来完全像这样 div class topbar div class container fixed h3 a href class logo test a h3 u
  • 制作Python批处理文件

    如何创建一个bat文件来运行python文件 特别是包含pygame bat文件 Simple 只需将以下内容作为批处理文件的第一行 python x 0 goto eof 批处理文件的其余部分是 Python 程序 这是一个完整的例子 p
  • 捕获具有同一组的 和 (thisPartOnly)

    假设我们有以下输入
  • 在 JSF 中验证字段并抛出异常,但将错误消息附加到另一个字段?

    我的页面上有一些需要交叉验证的字段 但我不希望此验证中显示错误
  • 如何从球衣servlet中的curl请求中提取参数?

    我正在以表格形式向我的球衣 servlet 发出一个curl post Restful请求 curl i X POST d debit user id custome mobile number 917827448775 http loca
  • Hive 将 ORC 文件分割成小部分

    create table n data MARKET string CATEGORY string D map
  • 检测 Mono 中的符号链接和管道

    有没有办法使用 C 和 Mono 来区分特殊文件 例如符号链接和管道 该应用程序是一个多平台备份工具 因此我想避免使用互操作库或 C DLL 并寻找直接托管代码解决方案 经过更多研究后 我找到了解决方案 添加参考MonoPosix项目可以访
  • 图像未保存在文件夹中

    我正在尝试创建一个文件夹并在其中保存图像 但这不起作用 我不知道我的代码出了什么问题 你能告诉我为什么吗 The method that invoke of uploading images public void openGallery
  • 将 QLineEdit 设置为仅接受数字

    我有一个QLineEdit用户应仅输入数字 那么是否有一个仅限数字的设置QLineEdit QLineEdit setValidator 例如 myLineEdit gt setValidator new QIntValidator 0 1
  • Microsoft 的 CodeView 格式规范

    我一直在寻找 1990 年代的 Microsoft 文档 名为CodeView 符号调试信息规范 微软在他们的文章中引用了它PE COFF规格 http elfz laacz lv ms exe spec html L61 关于该文档的信息
  • 如何通过VSTS构建和部署SSRS项目?

    我在 VS2015 中创建了简单的 SSRS 项目 我想通过创建构建定义和发布定义步骤来使用 VSTS 构建和部署 SSRS 项目 是否有任何第三方 VSTS 扩展可用 或者对于 SSRS 构建和 SSRS 部署与 SSIS 构建和 SSI
  • 子类化流

    我有兴趣创建自己的 Stream 子类 并且想知道应该重写哪些方法 部署在 pharo 和 Gemstone 上 我有一个包含各种类型事物的集合 我希望能够流式传输它的子集 其中包含类的元素 我不想复制集合或使用collect 块 因为集合
  • 在 CAB 中部署 C# ActiveX 以供 Internet Explorer 使用

    我正在拼命尝试部署一个用 C 开发的 IE 的 ActiveX 作为 CAB 存档 我阅读了很多资源 其中一些来自 StackOverflow 似乎很多人都遇到了同样的问题 我尝试了 3 种解决方案 a 创建 CAB VS 项目 b 使用手
  • SQL Server 2005:读提交事务隔离级别中的键范围锁?

    我正在帮助解决使用 SQL Server 2005 的 NET 应用程序中的一些死锁问题 我从下面的跟踪中获得了 XML 数据 真正让我困惑的是 RangeX X 锁定PK Exp Experience PriorFirm当事务隔离级别为读
  • Android 图像的 AES 加密/解密

    我需要找到一种在 Android 中加密 解密图像的方法 我是 Android 编程新手 从未在任何其他平台上加密 解密过 所以请给我一个很好的例子 因为我需要学习如何做到这一点 我正在开发一个需要加密 解密图像的项目 如果您能帮助我解决这
  • 如何在Excel中使用vba访问xml中的特定元素和属性?

    我正在努力让 Excel 解析 xml 文件 我找到了大量的示例 但似乎没有一个完全符合我的要求 而且我似乎无法克服错误 对象变量或未设置块变量 该 xml 格式良好 如下所示
  • 如何在绘图上绘制带注释的热图?

    我正在尝试制作一个带注释的热图 import plotly plotly as py import plotly tools as tls from plotly graph objs import import numpy as np i
  • PHP 单行语句中的 Netbeans 代码格式大括号

    Intro 我正在开发 PHPNetBeans IDE 7 2 Build 201207171143 我喜欢formatting以我的自定义格式清理我的代码 目前我与同事在一个小组中工作 我的一些同事习惯于编写不带大括号的单行语句 我认为这
  • 将 C 字符串转换为双精度数或从双精度数转换时出现奇怪的行为

    我无法理解 C 的规则 即在打印双精度数或将字符串转换为双精度数时应采用何种精度 下面的程序应该可以说明我的观点 include
  • 视图控制器有时收不到 NSNotification

    所以 我只是在各种情况下测试 NSNotifications 而这个令人困惑 如果您能帮助我理解 NSNotifications 我将不胜感激 我有一个导航控制器 我有一个名为 Add 的 UIBarButtonItem 它发布通知 Did