NSArray 可变性和 arrayByAddingObject

2024-01-12

我以为我对 Objective-C 中的对象和可变性有很好的理解,但我注意到一些奇怪的事情NSArray.

如果我有以下不起作用:

NSArray *myArray = [ [[NSUserDefaults standardUserDefaults] arrayForKey:someKey] arrayByAddingObject:myObject ];

“myObject”永远不会添加到“myArray”中.

但是,以下工作有效:

NSArray *someArray = [[NSUserDefaults standardUserDefaults] arrayForKey:someKey];
NSArray *myArray = [someArray arrayByAddingObject:myObject];

对此有何解释?我知道NSArray不是可变的,但由于它是在初始分配期间,因此它应该可以工作,因为两种方式似乎都是等效的。

[[NSUserDefaults standardUserDefaults] arrayForKey:someKey]返回一个NSArray

someArray 是一个NSArray

所以,一个NSArray简单地源自[NSArray arrayByAddingObject:Object]

Thanks!

EDIT 1

我只是想存储NSArray回到NSUserDefaults:

[[NSUserDefaults standardUserDefaults] setObject:myArray forKey:someKey];

它从未正确存储它,因此当我调试时,我看到创建数组时从未添加“myObject”。

注意:我只测试过[[NSUserDefaults standardUserDefaults] arrayForKey:someKey]返回一个空/nil array

EDIT 2

我已经稍微隔离了这个问题;这只有在以下情况下才会发生[NSUserDefaults standardUserDefaults] arrayForKey:someKey]返回“零”(基本上,该数组不存在于NSUserDefaults)。 我仍然很想知道为什么这对于我的第二个代码解决方案来说不是问题。


您如何检查是否myObject曾经添加过吗?这两个代码示例看起来都很好,而且我确实使用了前者,没有任何问题。但你所有的假设都是正确的。问题即使确实存在,也存在于其他地方。

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

NSArray 可变性和 arrayByAddingObject 的相关文章

  • UICollectionView 滚动到任何页脚或页眉视图

    我想滚动到集合视图的页脚或标题视图 但是 标准方法是scrollToItemAtIndexPath仅滚动到单元格 void scrollToBottom NSInteger section self numberOfSectionsInCo
  • 如何获取未知大小 NSArray 的前 X 个元素?

    在 ObjectiveC 中我有一个 NSArray 我们称之为NSArray largeArray 我想要一个新的NSArray smallArray仅包含前 x 个对象 或者如果largeArray 的大小已经 这种方法 NSArray
  • 正确地从 NSString 创建图像

    我正在从字符串变量创建图像 以下是创建图像的代码片段 UIImage imageFromText NSString text FontName UIFont font set the font type and size UIFont fo
  • Objective-C 实现文件中方法名后面的分号

    void designImageViewNow some code here 分号写法正确吗 就在实现文件 Objective C 中方法名称之后 正文括号之前 这行得通吗 当我正在开发 iPhone 应用程序时 我错误地将分号放在了一个自
  • 动态增加UITableViewCell中UILabel的高度?

    我有一个 UITableView 其中显示一个自定义单元格 我的单元格有两个标签和一个视图 如下图所示 我已经像这样给出了左视图的约束 项目标签限制 中心视图约束 右视图的约束 I am using a bean class to stor
  • AVPlayerLayer获取图像到UIImageView缓冲区

    我尝试 playerLayer renderInContext UIGraphicsGetCurrentContext 它将显示黑色背景 所以我得到当前播放器项目作为连续的重击图像 它看起来不像视频播放 只是静态图像连续流动 那么还有其他选
  • 将 NSString 的 NSArray 转换为 NSNumber 的更好方法

    考虑下面的代码 NSString param string 1 3 6 10 15 22 28 30 NSArray params param string componentsSeparatedByString NSNumberForma
  • UITextField 文本更改事件

    如何检测文本字段中的任何文本更改 委托方法shouldChangeCharactersInRange适用于某些东西 但它并不能完全满足我的需求 因为在它返回 YES 之前 textField 文本不可用于其他观察者方法 例如在我的代码中ca
  • iOS:调用 Objective-C 方法的处理开销是多少?

    我正在编写一些实时音频处理代码 该代码将在音频单元的渲染回调中执行 该线程处于系统识别的最高优先级 Apple 指示最大限度地减少此调用中进行的处理量 他们的建议之一是避免 Objective C 方法调用 But why 调用 Objec
  • 当我从我转向的视图控制器返回时,为什么我的 UITableView 的格式完全出错了?

    我有一个UITableView使用自定义单元格 其中有一些标签可以动态决定单元格的高度 当我点击一个单元格并转到一个新的视图控制器时 返回后所有单元格的格式完全混乱 我无法弄清楚是什么导致了它 这是细胞通常的样子 我对它们设置了一些非常基本
  • 最近打开的应用程序[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有什么方法可以获取最近打开的应用程序 例如 4 个 的列表吗 如果是这样 怎么办 可可麦克 看看LaunchServices LSSh
  • NSString – 静态还是内联?有性能提升吗?

    如果我写的话会有任何性能提升吗 NSString helloStringWithName NSString name static NSString formatString Hello return NSString stringWith
  • 如何在 iOS 9 上可靠地检测是否连接了外部键盘?

    在 iOS 9 之前 确定是否连接外部键盘的最可靠方法是监听UIKeyboardWillShowNotification并使文本字段成为第一响应者 如中所述这个问题 https stackoverflow com questions 289
  • 导入 RNCryptor 后架构 armv7 的未定义符号

    我导入了 RNCryptor 可以在这里找到 https github com rnapier RNCryptor https github com rnapier RNCryptor进入我的应用程序 但是 我在日志中收到了三个错误 Und
  • 在 OS X 上创建和使用静态库

    好的 我正在尝试创建一个 Cocoa 库 静态 并使用 但我不断收到错误 我创建了一个超基本的静态库 TSXLib 其中仅包含一个额外的类 import
  • 覆盖层不与 UITableView 一起滚动 - iOS

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

    我正在尝试链接到静态库 但不断收到链接器错误 我发现了一些发布示例的网站 但我无法看到我做错了什么 首先 我创建一个链接到我的库的项目 添加 gt 现有文件找到我的 xcodeproj 文件选择 将项目复制到目标组文件夹 选择我的宿主项目作
  • Objective-C – 拥有包含 TestFlight SDK 的 TestFlight 配置

    我已按照 TestFlight 的说明复制 发布 配置 我还使用 TestFlight SDK 从我的应用程序获取实时报告 通过这样做 我必须在我的应用程序中包含一些 TestFlight 代码 当然 我不想在我的应用程序的发布版本中包含此
  • 水平 UICollectionView 单行布局

    我正在尝试使用以下命令设置简单的水平布局UICollectionView 兜圈子却没有达到预期的结果 所以任何指针或例子将不胜感激 我粘贴经常更改的代码但没有成功可能没什么意义 该图像显示两行 第一行是单个项目 尺寸正确并且在中心正确对齐
  • 在 UIScrollview 上显示缩略图的最佳方法是什么(从服务器下载)

    我想在 UIScrollview 如照片应用程序 上显示许多图像 作为缩略图 所有图像将从服务器下载 据我所知 有几种选择 1 通过创建 UIImageviews 然后将它们添加为主滚动视图上的子视图 2 通过子类化一个UIView类 然后

随机推荐

  • 如何将 npm 脚本转换为 grunt 任务?

    我的 NodeJS 有以下脚本 scripts start grunt test node debug harmony node modules grunt cli bin grunt test 我正在运行节点 v0 11 13 所以我需要
  • 如何对两个表进行求和?

    我有两个表 我需要对它们进行求和 表 1 包含时间段 即年底的年份和季度 即4 8 12ETC 表 2 包含全年各季度的交易情况3 6 7 etc 我需要表 3 来汇总一年中的所有交易 以便获得年底的累积头寸 以下是一些示例代码 用于解释数
  • 部署到 us-central1 以外的区域时,客户端可调用 Firebase 函数失败

    客户端可调用 Firebase 函数失败并显示 错误 无法读取数据 因为格式不正确 当部署到美国中部1以外的地区时 尝试过欧洲 西部和亚洲 服务器代码 exports getName functions region europe west
  • WCF - 如何编写仅向特定客户端发布的发布者\订阅者服务?

    我正在以发布 订阅模式编写 WCF 服务 当有人发布活动时 我不想立即将其发送给所有客户 我希望能够为每个客户检查是否需要通知该客户该发布 基本上 这将通过访问数据库并检查该客户端是否已使用这些参数订阅该特定事件来完成 无法提前完成 只需要
  • Spidev 不使用 ioctl 同时写入/读取

    我希望找到一些帮助 即使这个问题可能更多地与硬件相关而不是与软件相关 我们将会看到 我正在开发基于 Freescales P1021 处理器 ppc e500v2 内核 的定制板 将连接外部 PCB 并可通过 SPI 进行配置 该外部 PC
  • CSS 宽度属性不受尊重

    我正在 Joomla 中向一个具有 virtualmart 的网站添加一些格式化的 div 标签 到目前为止我在这方面已经取得了成功 我修改了我们使用的模板 以包含一个 css 文件 article css 其中包含我的自定义内容 我所拥有
  • 正则表达式匹配字符串之前且最接近的第一次出现

    我正在尝试使用正则表达式来获取最接近名称 Daily 的 ID 号 不过 我遇到了困难 当我尝试正则表达式模式时 我得到以下结果 从第一个 ID 出现到选择 每日 的所有内容 所有 ID 都是单独选择的 我可以指定匹配编号来获取正确的 ID
  • RX - 重新抛出包含方法中的错误

    我需要翻译 RX 流中的错误 IObservable 进入包含流订阅的方法中的异常 因为这个问题https github com aspnet SignalR pull 1331 https github com aspnet Signal
  • Kubernetes 负载均衡

    我正在研究 Kubernetes 不考虑特定的云提供商 目前还不清楚最通用的服务 不是负载均衡器类型的服务 是否充当单个微服务的各个副本之间的内部负载均衡器 So 如何在副本之间实现内部负载均衡而不将微服务暴露给外部流量 您可以使用 pod
  • 在 JMeter 中绘制自定义变量的图表

    我有一个简单的 Java Request 采样器 即 AbstractJavaSamplerClient 如何从此采样器生成自定义变量并绘制它们的图表 最好使用开箱即用的图形侦听器 目前我只能轻松绘制采样时间图 将你的 var 放入 JMe
  • 可以画一条弯弯曲曲的线吗?

    如果我想画一条水平线 我会这样做 div div 如果我想画一条垂直线 我会这样做 line width 1px height 100px background color 000 div div 曲线比较棘手 但可以使用border ra
  • 如何创建持久化的AlarmManager

    编辑 根据 CommonsWare 的回答澄清了问题 我们通过 AlarmManager 安排一个警报每 60 秒触发一次 当我们的应用程序被终止时 我们的警报似乎不再执行 有没有办法让这些警报持续存在 即使应用程序被手动或被系统终止 这对
  • 我可以让 HttpWebRequest 包含 Windows 凭据而不等待 401 质询吗?

    我的应用程序与需要身份验证的内部 Web API 进行通信 当我发送请求时 我收到了预期的 401 质询 握手发生 经过身份验证的请求被重新发送 一切都正常进行 但是 我know需要授权 为什么我必须等待挑战 我可以强制请求发送凭据firs
  • 如何为给定字符串输入集合[重复]

    这个问题在这里已经有答案了 可能的重复 如何获得子集所有可能的组合 https stackoverflow com questions 13765699 how can i obtain all the possible combinati
  • 在 PyQt 中使用 pyttsx

    我正在 pyqt 中为我的聊天机器人制作 Gui 但我在这方面的代码中遇到了一些问题 def init self super Window self init self setGeometry 50 50 500 300 self setW
  • 如何在 Python 3.7 中向 multiprocessing.connection.Client(..) 添加超时?

    我正在运行两个Python 程序 程序 A 通过以下方式连接到程序 B多重处理 module Connection code in program A import multiprocessing import multiprocessin
  • 精度和的含义。双类型范围

    首先 请允许我承认我是一名经验丰富的程序员 拥有超过 10 年的编程经验 然而 我在这里问的问题是自从大约十年前我第一次拿起一本关于 C 的书以来一直困扰着我的问题 下面是一本关于Python的书的摘录 解释了Python的浮动类型 浮点数
  • 是否有一个保留插入顺序的 Set 也实现了 List?

    我正在尝试找到一个实现java util List and java util Set同时在Java中 我希望这个类只允许唯一的元素 如Set 并保留它们的顺序 例如List JDK 6 中存在吗 重要的是拥有List
  • PDO 占位符的有效字符

    在带有 PDO 的 PHP 中 我们限制使用哪些字符 我尝试过查看文档和在线但无济于事 我确实找到了一篇文章 其中用户在名称中使用了连字符 这破坏了查询 我正在编写一个动态生成这些名称的函数 并且由于连字符不是 no 所以我想知道是否有替代
  • NSArray 可变性和 arrayByAddingObject

    我以为我对 Objective C 中的对象和可变性有很好的理解 但我注意到一些奇怪的事情NSArray 如果我有以下不起作用 NSArray myArray NSUserDefaults standardUserDefaults arra