创建一个可以在以后单击同一按钮时添加的可变数组?

2024-01-28

一般菜鸟问题:

(1) 如何创建一个NSMutable数组在一个buttonClicked我可以在随后单击同一按钮时添加更多条目的操作吗?我似乎总是在每次点击时都从一个新数组开始(该数组只打印 1 个条目,这是一个按钮中最新的按钮标签)NSLog陈述)。

我有大约 100 个按钮(一个对应于字符串中称为“列表”的每个字符),这些按钮是由代码中前面的 for 循环生成的,并且每个按钮都分配了一个标签。它们位于我视野范围内的滚动视图中ViewController.

我希望跟踪有多少(以及哪些)按钮被点击可以选择如果第二次单击这些条目,则将其删除.

这是我到目前为止所拥有的:

-(void) buttonClicked:(UIButton *)sender
      NSMutableArray * theseButtonsHaveBeenClicked = [[NSMutableArray alloc] initWithCapacity: list.length];
      NSNumber *sendNum = [NSNumber numberWithInt:sender.tag];
      [theseButtonsHaveBeenClicked addObject:sendNum at index:sender.tag];
      NSLog(@"%@",theseButtonsHaveBeenClicked);
}

(2) 我读过,我也许可以使用 plist 字典,但我不太明白如何在代码中实现这一点,因为我无法手动键入字典中的项目(因为我不知道哪些按钮用户将点击)。如果我以某种方式加载并替换 plist 文件中的字典,这会更容易吗?我该怎么做呢?

(3) 我也不知道应该如何内存管理它,因为我需要不断更新数组。autorelease?

感谢您的任何帮助,您可以提供!


好的,首先,您正在创建一个本地范围的数组,该数组在每次调用时都会重新初始化按钮点击:。该变量应该是类初始化周期的一部分。

您也会过得更好NSMutableDictionary而不是 NSMutableArray。使用字典,我们不必指定容量,我们可以使用按钮的标签作为字典键。

这就是您需要做的,这三个步骤始终一起进行:属性/合成/释放。一个值得记住的好人。

  //Add property declaration to .h file
  @property (nonatomic, retain) NSMutableDictionary * theseButtonsHaveBeenClicked;

  //Add the synthesize directive to the top of .m file
  @synthesize theseButtonsHaveBeenClicked;

  // Add release call to the dealloc method at the bottom of .m file
  - (void) dealloc {
    self.theseButtonsHaveBeenClicked = nil; // syntactically equiv to [theseButtonsHaveBeenClicked release] but also nulls the pointer
    [super dealloc];
  }

接下来,我们在初始化类实例时创建一个存储对象。将其添加到您的班级中init or viewDidLoad method.

 self.theseButtonsHaveBeenClicked = [[NSMutableDictionary alloc] dictionary]; // convenience method for creating a dictionary

还有你更新的按钮点击:方法应该看起来更像这样。

    -(void) buttonClicked:(UIButton *)sender {

         NSNumber *senderTagAsNum = [NSNumber numberWithInt:sender.tag];
         NSString *senderTagAsString = [[NSString alloc] initWithFormat:@"%@",senderTagAsNum];

         // this block adds to dict on first click, removes if already in dict
         if(![self.theseButtonsHaveBeenClicked objectForKey:senderTagAsString]) {
           [self.theseButtonsHaveBeenClicked setValue:senderTagAsNum forKey:senderTagAsString];
         } else {
           [self.theseButtonsHaveBeenClicked removeObjectForKey:senderTagAsString];                }
         [senderTagAsString release];
         NSLog(@"%@", self.theseButtonsHaveBeenClicked);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建一个可以在以后单击同一按钮时添加的可变数组? 的相关文章

  • Fortran 指针数组

    同样 Fortran 中的指针数组 好吧 我有一个派生类型 type t context pointer type t context pointer p ctx end type t context pointer 当我在主程序中执行以下
  • 如何禁用 UITableView 中某些行的删除操作?

    我知道使用setEditing 启用UITableView的编辑模式 但我更喜欢禁用某些特定行的操作 启用其他行 是否可以 Thanks interdev 实施the tableView canEditRowAtIndexPath meth
  • 如何在 Microsoft 报告中显示字节数组中的图像

    我使用报表文件和 ReportViewer 控件来显示在运行时从对象动态加载数据的报表 我需要显示一个以字节数组形式存储在对象中的图像 PictureBox 的值当前设置为 First Fields ImageData Value dtst
  • 创建动态多维对象/数组

    我正在尝试使用 JS 创建一个多维数组 以便我可以通过 Ajax 调用 PHP 来发布一些数据 这可能很简单 但我对 JS 的了解很少关于这个具体的事情 这是带有代码的 JSFiddle http jsfiddle net k5Q3p 我想
  • 如何在 NSMutableArray 中实现“按值分组”?

    我正在使用 NSMutableArray 我想像在 SQL 中那样按日期获取值group by log date logMuArray log currenttime 4 30pm log date 11 12 2011 log durat
  • 如何使用 iPhone SDK 实现可滑动的图像堆栈(例如照片应用程序)?

    我想获取一堆图像 或者可能是一组用于下载图像的 URL 并以全屏方式显示它们 一次一个 使用 iPhone SDK 使用用户滑动来平滑地为堆栈中的下一个图像设置动画 Apple 的 Photo app 似乎可以做到这一点 此外 如果尚未检索
  • 在 Objective-C 中比较 2 个字符串

    我写了以下代码 if depSelectedIndice gt 1 comSelectedIndice gt 1 NSLog depart elemet d depSelectedIndice NSLog depart elemet d c
  • 使用 iOS 8 自定义键盘发送图像?

    我一直在为 iOS 8 开发自定义键盘 但在尝试使用键盘发送图像时偶然发现了一个问题 我做了一些研究 似乎没有一种简单的方法可以做到这一点UITextDocumentProxy因为只有NSStrings被允许 我是否忽略了使用自定义键盘发送
  • 打乱 NSMutableArray 而不重复并显示在 UIButton 中

    在我看来 我有 12 个按钮 一个数组包含 6 个名称 我想在其中打印数组名称UIButton标题 这是我的代码 texts NSMutableArray alloc initWithObjects 1 2 3 4 5 6 nil UIBu
  • 如何计算伽罗瓦域上的numpy数组?

    我想在伽罗华域 GF4 上使用 numpy 数组 所以 我将 GF4 类设置为数组元素 它适用于数组 整数计算 但不适用于数组 数组计算 import numpy class GF4 object class for galois fiel
  • iPhone 的电子书框架

    我有一本书想作为 iPhone 应用程序发布 有谁知道我可以使用免费 或便宜 的框架来实现这一目标 换句话说 我想为我的书创建一个独立的 XCODE 项目 其中包含 iPhone 用户将本书作为独立应用程序阅读所需的所有代码 我见过 O R
  • 持久化 UINavigationItem 的 rightBarButtonItem 属性

    这可能是一个愚蠢的问题 但是有可能保持正确的吗 UIBarButtonItem跨由一个管理的多个视图UINavigationController 我的一系列观点通常具有相同的权利UIBarButtonItem 但是当我将新视图推送到我的UI
  • 如何获得n个具有不同元素数量的数组的所有可能组合?

    我有一些在编程时未知的数组数量 也许是 3 或 4 或 7 每个数组都有一些元素 即 a 1 2 3 4 b 6 7 5 2 1 c 22 4 6 8 4 8 5 4 d e f g 我想通过从每个数组中采样一个数字来获得所有可能的组合 例
  • 覆盖层不与 UITableView 一起滚动 - iOS

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

    我希望我没有跳过 ObjC 手册中的这一部分 但是是否可以从类的一个类方法中引用该类 就像在 PHP 中一样 您将使用 this 来引用当前实例 而 self 引用实例的类 this 的 ObjC 等价物将是 self 那么 PHP 的 s
  • 虚拟乐器 iPhone 应用程序中的 VoiceOver 辅助功能?

    我收到盲人用户的评论 称我的一些声音和音乐相关应用程序只能在关闭 VoiceOver 的情况下使用 在 iOS 设备上启用 VoiceOver 辅助功能后 是否可以启用音乐键盘或鼓垫触摸区域 以便在点击键盘键或虚拟鼓组 等 时可以立即播放音
  • insertNewObjectForEntityForName:

    我使用 Xcode xcdatamodel 文件编辑器设置了一个实体 我创建了一个名为 Person 的实体 添加了一些属性 然后生成了一个 m 文件来表示它 一切都很好 现在 当我去编写一行代码时 例如 Person person Per
  • 如何将 ios7 通用应用程序升级到基于 Xcode 6 的通用故事板应用程序?

    我目前有一个基于 xcode 5 ios 7 的通用应用程序 因此有两个故事板 我正在考虑将其更新到 ios 8 有没有办法 最佳方法将两个故事板迁移到通用的单个故事板 我在 xcode 6 中看不到转换选项 None
  • UIImageJPEGRepresentation 在视网膜显示屏上提供 2x 图像

    我有这段代码 它创建一个图像 然后向其添加一些效果并缩小其大小以使其largeThumbnail UIImage originalImage UIImage imageWithData self originalImage thumbnai
  • 在 UIScrollview 上显示缩略图的最佳方法是什么(从服务器下载)

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

随机推荐

  • Swift 的 UITableView 示例

    我使用 Swift 和 iOS 已有好几个月了 我熟悉许多做事的方法 但我还不够好 我不能不看就直接写下来 我过去很欣赏 Stack Overflow 提供的快速答案 让我回到对我已经生疏的主题的正轨 例如 AsyncTask Androi
  • 如何开始将 django-cms 集成到现有项目中

    我的目的是将现有项目中的静态页面 关于我们 联系我们等 转换为管理可编辑页面 我已按照以下说明进行操作tutorial http django cms readthedocs org en 3 0 12 how to integrate h
  • W1024 组合有符号和无符号类型 - 扩大两个操作数

    我怎样才能防止这个警告 DCC 警告 uFvSystem pas 293 W1024 组合有符号和无符号类型 扩大了两个操作数 function LinkerTimestamp TDateTime overload begin Result
  • 为什么我不应该#include

    我用我的代码发布了一个问题 其唯一的 include指令如下 include
  • Chrome Devtools 以搜索方式打开,而不是开发工具本身

    尝试运行 Nativescript 调试会话 每次我进入 chrome devtools devtools bundled inspector html experiments true ws localhost 41000 它会打开谷歌搜
  • 全卷积网络的每像素 softmax

    我正在尝试实现类似全卷积网络的东西 其中最后一个卷积层使用大小为 1x1 的滤波器并输出 分数 张量 分数张量的形状为 Batch height width num classes 我的问题是 张量流中的什么函数可以对每个像素应用 soft
  • UITextView 绘制不可见/空白字符

    我将如何做一个UITextView为制表符 空格和换行符结尾绘制不可见字符 我认为必须在drawRect CGRect 方法或通过 Text Kit 中的布局管理器 有什么简单和 或直观的解决方案吗 我只需要知道如何获得CGRect每个空白
  • 如何在 Windows 8 Metro 应用程序中的设备中存储缩略图图像#

    我正在使用此代码创建缩略图并在框架中显示 平台 gt 使用 C 的 Windows 8 Metro 应用程序 http code msdn microsoft com windowsapps File and folder thumbnai
  • 使用 TextArea 通过 JavaFX 编辑大型文本文件

    有没有一种方法可以在 TextArea 中相当快地编辑相对较大的文本文件 例如 10 25 MB 或者也许可以禁用某些功能以使其更快 有替代组件吗 我了解 RichTextFX 但我想它会更慢 因为它做得更多 而且我只需要一个基本的编辑器
  • 单击按钮时关闭 jQuery 厚盒

    这是我的 jQuery script gt Html
  • 不同饼图中每个标签保持相同的颜色

    我无法为从一个饼图到另一个饼图的每个标签保持相同的颜色 如下图所示 Matplotlib 反转了第二个饼图中的颜色 我希望 Frogs 标签保持红色 Hogs 标签保持绿色 我也尝试添加label参数 但它只是给出了错误的计数 我还尝试反转
  • PHP $_FILES 文件循环上传

    我想从 php 函数将文件插入到 mysql 中 需要上传的文件已经存在于服务器上 所以我不想使用上传表单 我想循环遍历目录并将文件信息放入 FILES 请让我知道如何获得 file into FILES然后调用上传 dir handle
  • 在多个线程上并行调用 ICsharpCode.SharpZipLib 是否安全

    我们当前使用 ICsharpCode SharpZipLib 库的 GZipOutputStream 类进行压缩 我们通过一个线程来完成它 我想将输入数据流分割成块并并行压缩它们 我担心这个库内部可能有一些静态数据 这些静态数据会被多个线程
  • 使用 Python 的 Headless Chrome 在尝试下载文件时暂停

    我在 Mac 上使用 Python Jupyter Selenium webdriver 和 headless Chrome 带有 Canary 我写了一个脚本来抓取一个非常旧的网站 为了从该网站下载文件 我需要单击几个按钮 最终引导我到一
  • 使用 Python 的具有多个帐户的 YouTube 数据 API

    我正在开发一个应用程序 旨在帮助我的一个朋友更好地组织他的 YouTube 频道 他在不同的 Google 帐户上拥有多个频道 我正在用 Python 开发这个程序 目前我对 YouTube Data API 没有太多经验 我计划使用它 因
  • 如何确定哪些 Eclipse 插件对菜单和工具栏有贡献并停止它们

    我正在创建一个 RCP 应用程序 它使用许多第三方插件 其中一些插件提供了我不希望显示的菜单 菜单项和工具栏按钮 如何确定哪些插件正在提供这些菜单 菜单项和工具栏按钮 以及如何禁用它们这样做 检查菜单 工具栏贡献等的详细信息 通过包含插件来
  • decltype(auto) 与 auto&& 执行函数返回类型的通用处理

    使用时auto 处理返回左值的函数 int func int v 42 return v auto v func 治疗会有什么后果v作为参考而不是左值 这些后果是否证明使用decltype auto 代替auto 对函数的返回类型执行通用处
  • 手动向 Spring Security 提供引用 URL

    我们有一些购物车页面适用于访客和用户路径 我们希望允许用户在此过程中随时登录 但实际上并不想创建另一个登录页面 我希望我们可以简单地将用户重定向到现有登录并告诉 Spring Security 返回哪个 URL 我知道当会话超时和 或在没有
  • 为什么容器大小取决于绝对定位的子项?

    我正在尝试构建一个带有两个视频盒的类似 Skype 的界面 http jsfiddle net q9ER2 20 http jsfiddle net q9ER2 20
  • 创建一个可以在以后单击同一按钮时添加的可变数组?

    一般菜鸟问题 1 如何创建一个NSMutable数组在一个buttonClicked我可以在随后单击同一按钮时添加更多条目的操作吗 我似乎总是在每次点击时都从一个新数组开始 该数组只打印 1 个条目 这是一个按钮中最新的按钮标签 NSLog