将布尔值保存在 nsuserdefaults 中

2024-03-02

当我的应用程序启动时,正在播放音乐:

-(void)playBgMusic {

NSString *path = [[NSBundle mainBundle] pathForResource:@"bgmusic" ofType:@"aif"];
theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
theAudio.delegate = self;
[theAudio play];    }

但他应该能够通过按下按钮来关闭音乐,如果他再次按下按钮,音乐应该会再次打开。我有:

-(IBAction)check {


if (isquiet == NO) {

    [theAudio stop];

    isquiet = YES;

     defaults = [NSUserDefaults standardUserDefaults];
    [defaults setBool:YES forKey:@"stringKey"];


}

else {

    [self playBgMusic];

    isquiet = NO;

    defaults = [NSUserDefaults standardUserDefaults];
    [defaults setBool:NO forKey:@"stringKey"]; } }

我想我没明白。现在它在我的第一个 ViewController 中工作,我可以打开和关闭音乐,但是当我在播放音乐时转到另一个 viewController,然后再次返回并按下按钮时,音乐不会停止,并且当我多次按下它时音乐第二次播放并重叠。

还有什么问题吗?


无需将其包装在 NSNumber 中,有一些方便的方法:

要设置 BOOL,请使用:

[userDefaults setBool:YESorNO forKey:@"yourKey"];

要访问它,请使用:

[userDefaults boolForKey:@"yourKey"];

[编辑以回答您的其他问题]

不确定为什么要使用 NSUserDefaults - 对于您想要实现的目标来说似乎没有必要?以下是我对可以开始/停止音乐的按钮所做的操作:

-(IBAction)check 
{
    if (isQuiet)
    {
        // Play music
        // Change the button to indicate it is playing...
    } else 
    {
        // Stop music
        // Change the button to indicate it has stopped...
    }
    // Set your isQuiet to be the opposite of what it was when the button was clicked
    isQuiet = !isQuiet;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将布尔值保存在 nsuserdefaults 中 的相关文章

  • 最小的 iOS 蓝牙管理器示例

    我一直在构建一个最小的示例 用于使用 iOS 5 0 中的 BluetoothManager 私有框架来检测附近的蓝牙设备 使用此问题中找到的答案 寻找触手可及的通用蓝牙设备 https stackoverflow com question
  • 如何在Python中获取声音级别?

    对于我正在进行的项目 我需要获取麦克风的实时分贝级别 我见过阴谋家 Print out realtime audio volume as ascii bars import sounddevice as sd import numpy as
  • iPhone 应用程序中的异步、同步、线程

    我正处于一个应用程序的设计阶段 该应用程序将利用 REST Web 服务 并且在使用异步 同步和线程方面遇到了困境 这是场景 假设您有三个选项可供深入研究 每个选项都有自己的基于 REST 的资源 我可以使用同步请求延迟加载每个请求 但这会
  • 在横向中自动调整 UITableCells 内容的大小

    在 UITableView 中 我通过 UILabels 将内容添加到单元格中 定义最佳尺寸 与单元格宽度允许的一样大 我注意到只有tableView contentSize width是可靠的 因为cell contentView bou
  • 在 iOS 上将 NSString 转换为 NSDate 的正确方法?

    我一直在使用此方法将常规 NSString 对象转换为 NSDate 但尝试向 Apple 提交更新 但遭到拒绝 在 iOS 中还有什么其他方法可以做到这一点 NSString date str 2011 08 12T12 20 00Z N
  • 覆盖层不与 UITableView 一起滚动 - iOS

    我有一个 UITableView 类 它使用以下方法在转到下一个屏幕时调用加载覆盖 问题是这个加载屏幕不随列表滚动 所以如果你滚动一点并单击某些东西 加载屏幕不会显示 因为它位于顶部 如何让加载屏幕始终保持在 UITableView 的顶部
  • 在 XCode 中链接静态 ObjC 库的过程

    我正在尝试链接到静态库 但不断收到链接器错误 我发现了一些发布示例的网站 但我无法看到我做错了什么 首先 我创建一个链接到我的库的项目 添加 gt 现有文件找到我的 xcodeproj 文件选择 将项目复制到目标组文件夹 选择我的宿主项目作
  • 如何使用 Swift 使用 TouchID?

    Apple 为 iOS 8 的 TouchID 实现提供的文档采用 Objective C 语言 有 Swift 版本吗 Objective C IBAction touchIDAvailable UIButton touchIDAvail
  • AVAssetExportSession 为零 iPhone 7 - Plus 模拟器

    AVAssetExportSession在 iPhone 6 及以下版本上运行良好 但在 iPhone 7 iPhone 7 Plus 模拟器上运行不佳 Xcode 8 0 这段代码return nil在exportSession中 当在i
  • 如何将 ios7 通用应用程序升级到基于 Xcode 6 的通用故事板应用程序?

    我目前有一个基于 xcode 5 ios 7 的通用应用程序 因此有两个故事板 我正在考虑将其更新到 ios 8 有没有办法 最佳方法将两个故事板迁移到通用的单个故事板 我在 xcode 6 中看不到转换选项 None
  • 如何在 AS3 中将声音放大指定的分贝数?

    几天前 这是我的问题 我找到了答案 也许这会帮助别人 A 问 题的第一部分 可以使用Flash放大声音吗 SoundTransform 的 AS3 文档这样描述了音量属性 音量 范围从 0 静音 到 1 最大音量 从表面上看 这意味着您只能
  • Objective-C 中是否有相当于 C++ 动态转换的功能?

    如果我有两个类 子类和超类 SuperClass super new SuperClass SubClass sub new SubClass SubClass sub pointer The nice one line cast belo
  • Glib 在 iPhone 应用程序中的使用

    我想基于现有的开源 Objective C 框架开发一个 iPhone 应用程序 但是该框架广泛使用了 glib 库 我找不到一种方法来构建和包含 iPhone 应用程序的 glib 库 非越狱 有什么办法可以做到这一点 或者有没有推荐的方
  • UIViewController 内的 UIsearchController 使用自动布局

    有没有人成功实施过UIViewController其中包含两个UISearchController searchBar and a UItableView使用自动布局来布局所有内容 我正在尝试实现类似的目标1密码 https itunes
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两
  • Xamarin Android:检测设备当前是否正在播放音频

    在应用程序启动时 是否可以检测设备的音频播放器或其他应用程序当前是否正在播放音乐 您可以使用AudioManager http developer android com reference android media AudioManag
  • 如何在 Objective C 中使用 swift 文件

    我想在 Objective C 代码中使用我的 Swift 文件 我找到了不同的链接 说明了如何操作 我的项目名称是 测试项目 我将 import Test Project Swift h 导入到我的 m 文件中 以在 Objective
  • 更改 UIImageView 的位置

    我怎样才能为 UIImageView 做一个简单的位置改变 假设当前坐标是 x 20 和 y 30 我想将其移至 x 100 和 y 100 可以制作运动动画吗 你需要改变它的CGFrameUIImageView就像这样 imageView
  • _ 和 self 之间的区别。在 Objective-C 中

    使用下划线和使用selfObjective C 中调用时的关键字 property 财产申报 property weak nonatomic NSString myString Calling synthesize关于物业 synthesi
  • 如何去除 UIImageView 遮罩后的透明区域?

    在我的一个 iOS 应用程序中 我尝试使用以下命令剪切图像的一部分CGImageMask 我已成功使用以下代码屏蔽图像 UIImage maskImage UIImage referenceImage withMask UIImage ma

随机推荐

  • 如何使用 React hook 检测 Next.js SSR 中的窗口大小?

    我正在使用 Next js 构建一个应用程序反应日期 https github com airbnb react dates 我有两个组件日期范围选择器组件和DayPickerRangeController成分 我想渲染日期范围选择器当窗口
  • 将动态二维数组传递给函数

    我正在用 C 编写一个 n x n 矩阵乘法程序 其中 a 和 b 是输入 x 是输出 a b 和 x 已分配 但我不确定如何正确地将指针传递给乘法函数 下面是我想做的事情的概述 void multiplication float a fl
  • 如何在不冒失去对称属性的风险的情况下用hibernate实现equals?

    在阅读了 再次 很久以前就应该这样做 正确实现 equals 和 hashcode 后 我得出了这些结论 这对我有用 如果是 JDK 7 之前的版本 更喜欢使用 Apache commons equalsbuilder 和 hashcode
  • Java内部类和私有字段的可见性

    直到今天我才意识到这一点 但在 Java 中 私有字段在内部类上并不是真正私有的 您可以实例化一个类并访问这些字段 就好像它们是公共的一样 我的问题是为什么这是用 Java 完成的 哪些设计决策导致了封装的破坏 允许这样做有什么好处吗 pu
  • 转换为同一个类时出现 ClassCastException

    我有 2 个不同的 Java 项目 其中一个有 2 个类 dynamicbeans DynamicBean2 and dynamic Validator 在另一个项目中 我动态加载这两个类并将它们存储在Object class Form C
  • 字符串仅包含给定的字符集

    我需要知道给定的字符串是否是有效的日期时间格式字符串 因为该字符串可能代表其他内容 我尝试了 DateTime ParseExact somedate ToString format format 认为它会因无效格式而呕吐 但事实并非如此
  • 从匿名函数作用域中提取数据

    由于此应用程序的复杂性 我需要包装 Facebook API 调用 如下所示 In main file read is always undefined var read fb connect readStream In fb wrappe
  • 算法帮忙!与其伙伴一起搜索字符串的快速算法

    我正在寻找一种用于在巨大字符串中进行搜索的快速算法 它是由数亿到数十亿个字符组成的生物体基因组序列 该字符串中仅存在 4 个字符 A C G T 并且 A 只能与 T 配对 而 C 与 G 配对 现在我正在搜索两个可以反向并行配对的子字符串
  • 在 Markdown 上使用 Pandoc 时,如何从 YAML 标头中更改 PDF 输出字体?

    是否有一种 内置 方法可以设置在 Pandoc YAML 标头中使用的不同字体 或多种字体 理想情况下 我会在 Markdown 文件的 YAML 标头中执行类似的操作 font MySansSerifFontName 我在 Linux U
  • jslint --edition=latest 意外的 ES6 功能。常量

    我正在尝试使用node jslinthttps github com reid node jslint https github com reid node jslint为了保持我的代码干净 我的 nodejs 脚本中有一个 const 但
  • 诺基亚 6300 出现应用程序错误

    我正在使用这段代码来连接 Servlet 尝试访问互联网时的移动应用程序 手机中出现以下消息 允许网络访问 是或否 如果我在诺基亚 6300 中对该消息单击 否 则会出现 应用程序错误 警告 并且会自动关闭该应用程序 我尝试过其他诺基亚手机
  • spring singleton bean 字段未填充

    我需要一个带有一些内部字段的服务 单例 比如待处理线程的列表 是的 所有内容都被编写为线程安全的 问题是 如果我 autowire这个 bean 的字段似乎是空的 调试我发现代理正确绑定到实例 字段CGLIB CALLBACK X正确链接到
  • 命名管道读取超时

    我正在尝试为命名管道的读取操作设置超时 为了从命名管道中读取数据 我使用ReadFile功能 我读到可以使用以下命令为此函数设置超时SetCommTimeouts函数 但当我尝试使用它时 出现系统错误 1 函数不正确 这是我的代码 这是客户
  • 如何将外部 javascript 文件添加到 Zend Framework 2 应用程序?

    我需要将 jQuery 和其他 javascript 文件添加到我的 Zend Framework 项目中 我正在尝试使用动作控制器来做到这一点 public function userinfoAction this gt view gt
  • Visual Studio 中无法下载 Cordova 插件错误

    我正在尝试在 Visual Studio 2015 中为我的 cordova 应用程序安装插件 但出现错误 Couldn t download plugin 如果我尝试使用 CLI 安装它 错误是 Current Directory is
  • iAd 横幅在模拟器上显示测试广告,但在设备上不显示

    我正在尝试在我的 iPhone 应用程序上放置 iAd 横幅 这是我声明横幅广告的地方 void bannerViewDidLoadAd ADBannerView banner UIView beginAnimations nil cont
  • C++代码可视化

    一种后续 相关问题this https stackoverflow com questions 27857 c c source code visualization 我试图掌握一个拥有数百个类和一个大型继承层次结构的大型代码库 我希望能够
  • 为什么我无法从我的 GitLab 作业连接到 selenium docker-compose 服务?

    我正在 Gitlab CI 中运行 selenium 测试 但在使用 gitlab 运行程序而不是我的计算机时 无法正确设置远程 URL 跑步者的IP地址是192 168 xxx xxx 当我运行管道时 我得到的 selenium hub
  • Webstorm 无法识别 Grunt

    所以我搞砸了删除和安装节点和 npm 来安装没有 sudo 的软件包 现在我无法在 Webstorm 中使用 Grunt 面板 消息是 grunt no color gruntfile Users max repos cb Gruntfil
  • 将布尔值保存在 nsuserdefaults 中

    当我的应用程序启动时 正在播放音乐 void playBgMusic NSString path NSBundle mainBundle pathForResource bgmusic ofType aif theAudio AVAudio