将观察者添加到 BOOL 变量

2024-04-08

是否可以将观察者添加到简单变量(例如 BOOL 或 NSIntegers)并查看它们何时发生变化?

Thanks!


您观察键,当它们的值发生变化时会收到通知。数据类型可以是任何类型。对于定义为 Objective-C 属性的任何内容(在 .h 文件中使用 @property),这已经准备就绪,因此如果您想观察添加到视图控制器的 BOOL 属性,请按如下方式操作:

在 myViewController.h 中:

@interface myViewController : UIViewController {
    BOOL      mySetting;
}

@property (nonatomic)    BOOL    mySetting;

在 myViewController.m 中

@implementation myViewController

@synthesize mySetting;

// rest of myViewController implementation

@end

在 otherViewController.m 中:

// assumes myVC is a defined property of otherViewController

- (void)presentMyViewController {
    self.myVC = [[[MyViewController alloc] init] autorelease];
    // note: remove self as an observer before myVC is released/dealloced
    [self.myVC addObserver:self forKeyPath:@"mySetting" options:0 context:nil];
    // present myVC modally or with navigation controller here
}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    if (object == self.myVC && [keyPath isEqualToString:@"mySetting"]) {
        NSLog(@"OtherVC: The value of self.myVC.mySetting has changed");
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将观察者添加到 BOOL 变量 的相关文章

  • 在 swrevealcontroller 之前实现登录屏幕

    我刚刚开始学习 IOS 开发 我已经按照给定的在线教程成功实现了 SWRevealViewController 一切都按预期工作 然后 我决定添加一个登录屏幕 这将是应用程序运行时用户看到的第一个页面 我采取的步骤如下 将 UIViewCo
  • 如何在 Xcode 4 中在 .h 和 .m 之间切换

    刚刚安装的 Xcode 4 到目前为止一切顺利 除了 Apple 更改了所有键盘快捷键 有人知道如何在 h 和 m 之间切换吗 苹果改变了各种快捷键 但要在标头和实现之间切换 新的快捷键是 You can change it back to
  • Swift 闭包作为 AnyObject

    我尝试使用这个方法 class addMethod 在 Obj c 中使用如下 class addMethod self class selector eventHandler imp implementationWithBlock han
  • 如何在 ios 7 上更改重新排序控制图像

    我正在寻找一种更改重新排序控件图像和大小的方法 我使用此代码来更改重新排序图像 void tableView UITableView tableView willDisplayCell UITableViewCell cell forRow
  • 防止UIScrollView的UIPanGestureRecognizer遮挡UIScreenEdgePanGestureRecognizer

    我有一个UIScrollView它填满了我应用程序的一页上的屏幕 但我希望允许用户从屏幕边缘平移以显示其后面的视图 问题是 UIScrollView 窃取了我的触摸UIScreenEdgePanGestureRecognizer在屏幕边缘
  • NSURL URLWithString:引发异常

    简而言之 NSURL URLWithString 似乎引发了一个例外 根据文档 如果字符串格式错误 则返回 nil 没有提到在任何情况下都会引发异常 除此之外 我还对 URL 进行编码并检查nil在将字符串转换为 URL 之前 任何人都可以
  • UIDatePickerModeCountDownTimer模式中的UIDatePicker:如何更改为分钟和秒模式?

    我在故事板中添加了 UIDatePicker 并将模式设置为 CountDownTimer 它只显示小时和分钟 但我需要的是分钟和秒模式 我不需要小时列 需要分钟和秒列 我尝试更改间隔 但最小值是 1 分钟 是否可以 我怎样才能做到这一点
  • 如何在 iOS 中注册自定义文件类型

    我目前正在创建一个应用程序 我想让用户在其中备份他们的文件 plist m4a 我压缩文件并将扩展名更改为自定义扩展名 专门针对我的应用程序 例如 MyBackup 然后 用户可以通过电子邮件或 iTunes 文件共享进行导出 我已经阅读过
  • MPMusicPlayerController 和 setNowPlayingItem

    我在用着MPMusicPlayerController 特别是与setNowPlayingItem协议 它是为了cydia 但我在制作时遇到了一些问题和理论的警告 似乎某些协议和方法不起作用 我收到如下警告 Tweak xm 177 war
  • iOS中的performSelector有什么用

    的作用是什么执行选择器 比较 self btnClicked and self performSelector selector btnClicked void btnClicked NSLog Method Called 两者都对我来说工
  • 玻璃效果 UIView

    我想知道如何在 UIView 上添加玻璃效果 我想像这样的效果 http pttrns com pickers detail 0dc9d9f6c6a7577613b3453768eee3b3在灰色半透明视图上 您 可以在这里看到 Thank
  • 适用于 Objective-C / iPhone 的良好 HTTP 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 UPDATE 这个问题显然已经过时了 参见日期 我建议只使用现代 iOS7 功能 例如 NSURLSession 我想 这个问题是为了历史
  • PresentModalViewController 不执行任何操作

    我有一个 UIViewController parent 调用presentModalViewController与另一个 UIViewController child on viewDidLoad If parent没有 UINaviga
  • 您将如何实现一个检测水平滑动以允许分页的 UITableView?

    我想实现一个 UITableView 一次显示 20 行 但考虑到我实际上可能要展示 120 个项目 我想使用某种分页来处理这个问题 使用前 20 项填充表 当用户从右向左滑动时 用接下来的 20 个项目重新加载 UITableView 从
  • 线程 1:信号 SIGABRT - AppDelegate.h

    main m Journey Created by Julian Buscema on 2014 07 13 Copyright c 2014 Julian Buscema All rights reserved import
  • PrepareForSegue之谜

    我在两个不同的 VC 中有一个prepareForSegue 方法 一个使用一个if声明 而另一个旨在使用switch 除了名称之外 代码几乎相同 这个效果很好 void prepareForSegue UIStoryboardSegue
  • 对于某些纹理尺寸,glFramebufferTexture2D 在 iPhone 上失败

    当我尝试将纹理附加到帧缓冲区时 glCheckFramebufferStatus 报告某些纹理大小的 GL FRAMEBUFFER UNSUPPORTED 我已经在第二代和第四代 iPod Touch 上进行了测试 两个模型之间失败的纹理尺
  • 自定义 MKAnnotationView - 如何捕获触摸而不忽略标注?

    我有一个自定义 MKAnnotationView 子类 它完全按照我想要的方式显示视图 在那个视图中 我有一个按钮 我想捕获按钮上的事件来执行操作 这很好用 但是 我不希望标注被忽略或消失 基本上 触摸标注中的按钮将开始播放声音 但我想保留
  • 应用程序未通过协同设计验证?

    我在提交 iPhone 申请时遇到问题 我看到了一些类似的问题 但没有找到答案 当我存档项目并单击 验证 时 收到错误消息 应用程序未通过协同设计验证 签名无效 或者未使用 Apple 提交证书进行签名 我假设我在协同设计部分做错了什么 我
  • UINavigationController 在 UITabBarController 的 moreNavigationController 中不起作用

    我正在处理UINavigationControllers在我的应用程序中 全部由UITabBarController 一切工作正常 直到我的控制器落入自动生成的 更多 选项卡 我在简单的示例中重现了该问题 难道我做错了什么 我想不通 感谢您

随机推荐

  • 在另一台计算机上运行 C# 程序时出现 System.IO.FileLoadException

    我目前正在开发一个 C WPF 项目 该项目使用 MySQL Data 和 System Data Sqlite dll 以及其他几个 该项目是一个 Net 4 项目 在我的开发机器上运行没有问题 我创建了一个 MSI 安装程序包 当我添加
  • 对 geom_tile 内的数据进行排序

    我有一个数据框 我想生成一个geom tile 从中绘制 但我希望图表的排序不是基于字母顺序 而是基于该数据框中的变量 structure list V1 c a y w p v h i V2 c r w q m l q g V3 c 5
  • Visual Studio 2010 Express 是否会阻止源代码管理插件?

    我尝试在我的 Visual Studio 2010 Express 上安装此插件 http gitscc codeplex com http gitscc codeplex com 但我在插件存储库中找不到它 插件的 源代码管理 类别是空的
  • 从 PageAsyncTask 调用的方法中,HttpContext.Current 为 null

    我有一个场景 我有一个页面 单击按钮即可打开一个对话框 在单击按钮打开的对话框表单中 我可以从选定的 txt 文件中读取数据列表并构建查询并将数据添加到某些数据库表 由于可能存在大量数据 此过程可能需要很长时间 因此用户在上传完成之前将无法
  • 使用 MonadRef 实现 MonadCont

    有一个众所周知的问题我们不能使用forall类型在Cont返回类型 https stackoverflow com questions 7178919 how to make callcc more dynamic 7180154 7180
  • 如何检查复选框是否被选中

    我的表格上有复选框
  • “网络错误:404 未找到”/style.css

    我在萤火虫中遇到错误 网络错误 404 未找到 已删除 style css 这意味着什么以及我需要做什么 Thanks HTTP 404 的含义正如其所言 未找到文件 在文档中的某个位置 您链接到 removed style css 并且该
  • Android:如何与WebView的内容进行交互?

    有没有一种方法可以以编程方式与内容进行交互WebView 例如 我的应用程序如何 响应事件 例如点击网页上的按钮 迭代所有的INPUT页面中的元素并检索其内容 找到所有DIV元素与类status并更改其内容 Thanks 您可以使用 Jav
  • setMessageBody 中忽略新行和返回

    我是不是在做一些蠢事 我可以预填写并发送电子邮件 但 r n 在 emailBody 中被忽略 void sendEventInEmail MFMailComposeViewController picker MFMailComposeVi
  • 执行 aapt 时出错:无法运行程序,CreateProcess 错误=5,访问被拒绝:CreateProcess 错误=5,访问被拒绝

    今天 我刚刚使用 Android SDK Manager 更新了 Windows 7 上的 Android SDK 并在 Eclipse 中构建期间开始出现错误 其中显示 执行aapt时出错 无法运行程序 CreateProcess错误 5
  • 如何通过单击按钮打开和关闭引导警报?

    我想通过按钮单击事件多次显示警报框 而无需刷新页面 但警报框仅显示一次 如果我想再次显示警报框 我必须刷新页面 目前 如果您在页面上呈现引导警报 则当您关闭它时 警报的 div 容器将从页面中消失 因此 当您再次单击该按钮时 它就不再显示
  • 如何使用 Subversion 服务器删除和创建新的存储库?

    好吧 我只是做了一些愚蠢的事情 我正在第一次设置一个供承包商使用的颠覆服务器 我完成了一键设置 创建了我的项目 并第一次签入了我们的应用程序 我认为稍后会进行操作并删除配置文件中连接字符串中的密码信息 Duh 所以现在我需要删除存储库中的该
  • 作为装饰器登录与依赖注入 - 如果我需要登录类内部怎么办?

    我最初问这个问题是在这条评论 https stackoverflow com questions 7905110 logging aspect oriented programming and dependency injection tr
  • Tkinter 创建带循环的选项菜单

    我创建了一个代码 使用 for 循环使用字典中的值创建 tkinter OptionMenus 该代码似乎运行成功 OptionMenus 根据需要在窗口上显示带有关键字 import tkinter as tk from tkinter
  • 从事务性平面数据库填充事实表和维度表的最佳实践

    我想在 SSIS SSAS 中填充星型模式 多维数据集 我准备了所有维度表和事实表 主键等 源是一个 平面 项目级别 表 我现在的问题是如何拆分它 并将其从一个放入相应的表中 我做了一些谷歌搜索 但找不到令人满意的解决方案 人们会认为这是
  • C: dup2、pipe 和 fork 未按预期工作

    我正在尝试做一个简单的 fork gt 执行另一个程序 gt 向该子进程说 你好 gt 读回一些内容 gt 打印收到的内容 用作子程序的程序只是等待任何输入行并将某些内容打印到标准输出 例如 你好 这是我的 主机 程序 不起作用 inclu
  • npm 对于 socket.io/installing stuff 意味着什么?

    我在这方面真是个菜鸟 我刚刚开始接触node js socket io html5 之类的东西 我终于弄清楚如何使用命令提示符 使用 Windows 通过命令 node example js 启动 hello world 应用程序 但有什么
  • django-admin.py startproject 打开记事本,而不是创建项目

    嘿 所以基本上 当我尝试 django admin py startproject mysite 时 带有 django admin py 文件的记事本会打开 而不是创建新的实际项目 我在 Windows 上 就在昨天我创建了该项目 一切都
  • 禁用页面上的所有验证控件

    在开发周期的早期阶段 如果我们只想快速地从一个表单移动到另一个表单 那么让所有验证控件强制执行其规则会有点烦人 禁用页面上所有验证器控件的最简单方法是什么 设置一个 javascript 来获取页面中的所有验证器控件 并在 for 循环中将
  • 将观察者添加到 BOOL 变量

    是否可以将观察者添加到简单变量 例如 BOOL 或 NSIntegers 并查看它们何时发生变化 Thanks 您观察键 当它们的值发生变化时会收到通知 数据类型可以是任何类型 对于定义为 Objective C 属性的任何内容 在 h 文