首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >试图从充满NSMutableArray对象的NSDate中获取双值

试图从充满NSMutableArray对象的NSDate中获取双值
EN

Stack Overflow用户
提问于 2016-10-08 23:50:20
回答 3查看 52关注 0票数 1

我正在创建一个程序,每次按下按钮,就会将当前的日期/时间添加到NSMutableArray中。然后,我试图将时间的双值放入另一个NSMutableArray中。最后,我想使用这些双值来确定它们之间的平均时间。以下是我到目前为止所拥有的:

按钮的IBAction代码:

代码语言:javascript
运行
AI代码解释
复制
- (IBAction)tapButton:(id)sender {

    _currentTapTime = [NSDate date];
    [_tapTimeData addObject:_currentTapTime];

    _tapCountInt++;
    _tapCount.text = [NSString stringWithFormat:@"%ld", (long)_tapCountInt];

}

我的代码试图将时间作为双值输入到另一个数组中:

代码语言:javascript
运行
AI代码解释
复制
for (int i = 0; i < [_tapTimeData count]; i++) {
    if (i == 0) {
        NSTimeInterval interval = [[_tapTimeData objectAtIndex:i] timeIntervalSinceDate:[_tapTimeData objectAtIndex:i]];
        [_intervalNumber initWithDouble:interval];
        [_tapTimeDataAsDouble addObject:_intervalNumber];
     } else {
         NSTimeInterval interval = [[_tapTimeData objectAtIndex:i] timeIntervalSinceDate:[_tapTimeData objectAtIndex:i-1]];
         [_intervalNumber initWithDouble:interval];
         [_tapTimeDataAsDouble addObject:_intervalNumber];
      }
}

我得到的是空数据,无法从数组中获取双值。

从本质上讲,我希望该程序能够完成以下工作:

  1. 用户点击按钮。
  2. 该程序记录当前的时间,为该龙头。
  3. 当用户停止点击时,指示每个抽头之间的差异的双值将在一个新的数组中结束。
  4. 稍后,我将计算每个抽头之间的平均时间(以毫秒为单位),并进行其他一些计算,如抽头之间时间的方差和标准差。

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-09 00:23:39

这是:

代码语言:javascript
运行
AI代码解释
复制
[_intervalNumber initWithDouble:interval];
[_tapTimeDataAsDouble addObject:_intervalNumber];

应该是这样:

代码语言:javascript
运行
AI代码解释
复制
_intervalNumber = [NSNumber numberWithDouble:interval];
[_tapTimeDataAsDouble addObject:_intervalNumber];

代码:

代码语言:javascript
运行
AI代码解释
复制
@interface ViewController () {
    NSDate *currentTapTime;
    NSMutableArray *tapTimeData;
    int tapCountInt;
    IBOutlet UILabel *tapCount;
    NSNumber *intervalNumber;
    NSMutableArray *tapTimeDataAsDouble;
}

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    tapCountInt = 0;

    tapTimeData = [[NSMutableArray alloc] init];
    tapTimeDataAsDouble = [[NSMutableArray alloc] init];

}

- (IBAction)tapButton:(id)sender {

    currentTapTime = [NSDate date];
    [tapTimeData addObject:currentTapTime];


    NSLog(@"%@", tapTimeData);

    tapCountInt++;
    tapCount.text = [NSString stringWithFormat:@"%ld", (long)tapCountInt];
}


- (IBAction)tapAverage:(id)sender {
    for (int i = 0; i < [tapTimeData count]; i++) {
        NSLog(@"################%d", i);

        if (i == 0) {
            NSTimeInterval interval = [[tapTimeData objectAtIndex:i] timeIntervalSinceDate:[tapTimeData objectAtIndex:i]];
            intervalNumber = [NSNumber numberWithDouble:interval];
            [tapTimeDataAsDouble addObject:intervalNumber];
        } else {
            NSTimeInterval interval = [[tapTimeData objectAtIndex:i] timeIntervalSinceDate:[tapTimeData objectAtIndex:i-1]];
            intervalNumber = [NSNumber numberWithDouble:interval];
            [tapTimeDataAsDouble addObject:intervalNumber];
        }
    }
    NSLog(@"%@", tapTimeDataAsDouble);
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
票数 1
EN

Stack Overflow用户

发布于 2016-10-09 00:23:09

  1. 您启动了数组_tapTimeDataAsDouble和_tapTimeData吗?
  2. 创建了与代码类似的函数。

票数 0
EN

Stack Overflow用户

发布于 2016-10-09 00:24:44

你真的需要这个第一步的值吗,这个值总是0?

NSTimeInterval interval = [_tapTimeData objectAtIndex:i timeIntervalSinceDate:_tapTimeData objectAtIndex:i];

这应该能满足你的需要。结果数组将包含n-1对象。

代码语言:javascript
运行
AI代码解释
复制
for (int i = 1; i < [_tapTimeData count]; i++) {
    NSTimeInterval interval = [_tapTimeData[i] timeIntervalSinceDate:_tapTimeData[i-1]];
    [_tapTimeDataAsDouble addObject:@(intervalNumber)];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39941276

复制
相关文章
1.javascript中的函数
函数是由这样的方式进行声明的:关键字 function、函数名、一组参数(根据需要使用参数),以及置于括号中的待执行代码(功能),返回值(可选)。
joshua317
2022/03/25
5050
Python中的列表(1)
  所以说访问列表的元素,可以在列表名后加方括号,方括号内输入索引,即可访问对应索引的元素。(ps:索引从0开始)
py3study
2020/01/16
3.4K0
java1-7和1-8的排序代码
String[] atp = {"Rafael Nadal", "Novak Djokovic", "Stanislas Wawrinka", "David Ferrer","Roger Federer", "Andy Murray","Tomas Berdych", "Juan Martin Del Potro"}; List<String> players = Arrays.asList(atp)
tea9
2022/07/16
2020
java1-7和1-8的排序代码
Python中的命名空间和作用域(1)
本文将介绍Python命名空间和作用域,它们用于分配Python程序中的对象。Python语言是一种能够实现面向对象编程的高级语言,或者说,在Python中,“万物皆对象”。
老齐
2020/08/11
9060
CentOS 7 与 CentOS 6的不同
CentOS 7 vs CentOS 6的不同 (1)桌面系统 [CentOS6] GNOME 2.x [CentOS7] GNOME 3.x(GNOME Shell) (2)文件系统 [CentOS6] ext4 [CentOS7] xfs (3)内核版本 [CentOS6] 2.6.x-x [CentOS7] 3.10.x-x (4)启动加载器 [CentOS6] GRUB Legacy (+efibootmgr) [CentOS7] GRUB2 (5)防火墙 [CentOS6] i
Albert陈凯
2018/04/04
1.1K0
数据结构与算法 1-6 Python列表类型不同操作的时间效率
本系列是我在学习《基于Python的数据结构》时候的笔记。本小节首先回顾一下timeit代码执行时间测量模块,然后通过此模块测算Python中list列表一些操作的时间效率。
触摸壹缕阳光
2019/11/13
7660
数据结构与算法 1-6 Python列表类型不同操作的时间效率
枚举+优化(7)——前缀和1
例1  给定一个长度为N的数组:A1,A2,...,AN。(N <= 100000,1 <= A[i] <= 100000)。然后有M个询问,每次询问给两个整数L,R问A[L]~A[R]的和是多少。(M <= 100000)。  这道题最直接的做法就是每次询问的时候,用一个循环累加A[L]~A[R]的和,伪代码如下: Ask(L,R) Sum = 0 For i = L...R Sum += A[i] return Sum  上面这段伪代码,处理一个询问的时间复杂度是O(R-L),考虑到R最大是N
mathor
2018/06/19
5860
《JavaScript 模式》读书笔记(7)— 设计模式1
  这些模式已经出现了相当长的一段时间,并被证明在许多情况下都非常有用。这也是为什么需要自己熟悉并谈论这些模式的原因。
全栈程序员站长
2022/07/21
4510
《JavaScript 模式》读书笔记(7)— 设计模式1
这些模式已经出现了相当长的一段时间,并被证明在许多情况下都非常有用。这也是为什么需要自己熟悉并谈论这些模式的原因。
zaking
2020/09/02
5400
JavaScript基础1
什么是Javascript? Javascript是一种基于对象和事件驱动的, 与平台无关的 ,具有安全性的 ,弱类型的脚本语言。 为什么要用? 使用它的目的是与HTML超文本标记语言、Java 脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择。 Javascript的特点: 1.是一种脚本编写语言 Ja
汤高
2018/01/11
1K0
JavaScript 学习(1)
参考资料:http://www.w3school.com.cn/js/index.asp
lpe234
2020/07/28
8040
JavaScript笔记(1)
编程:就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程.
y191024
2022/09/20
6170
JavaScript笔记(1)
JavaScript 入门(1)
JavaScript,就是我们通常所说的JS,是一种嵌入到HTML页面中的脚本语言,由浏览器一边解释一边执行。
Qwe7
2022/04/03
3130
面向 JavaScript 开发人员的 ECMAScript 6 指南(1 ):新 JavaScript 中的变量声明等功能
ECMAScript(通常称为 JavaScript)是一种经历了许多波折的脚本语言。它最初是为了实现 Netscape Navigator(第一批 Web 浏览器之一)的可扩展性而创建的。JavaScript 最初的命名考虑到了与 Java 的关联(Java 那时正迅速发展成为一种重要语言),多年来,它一直被视为两种语言中的次要语言。
疯狂的技术宅
2019/03/28
8930
面向 JavaScript 开发人员的 ECMAScript 6 指南(1 ):新 JavaScript 中的变量声明等功能
JavaScript基础1
JavaScript写在<script></script>之间    <script type="text/javascript">表示在<script></script>之间的是文本类型(text),javascript是为了告诉浏览器里面的文本是属于JavaScript语言。      引用外部javascript文件:<script src="script.js"></script> 变量 var mychar 数组  var array =new Array(); 输出内容:    docume
用户1624346
2018/04/10
7350
JavaScript基础1
JavaScript入门(1)
Hello小可爱们,今天我们又要回到学习主题咯,前面学习了HTML和CSS的用法,今天我们就要为Web页面注入生命啦,那就是JavaScript,通过JavaScript我们可以让我们的页面动起来,这也是Web开发中的一座大山。
萌兔IT
2019/07/26
8360
JavaScript入门(1)
《JavaScript 模式》读书笔记(6)— 代码复用模式1
  我们有开始进入新篇章了。这篇内容主要讲代码复用模式,实际上代码复用,就是继承啊,原型啊,构造函数啊等等这一类的内容。对于前端进阶来说,是很重要的基础知识。这一篇内容会对原型、 继承有很深入的讲解。我也会尽我所能的为大家讲清楚、分析透彻。
全栈程序员站长
2022/07/21
2650
《JavaScript 模式》读书笔记(6)— 代码复用模式1
GPDB6和GPDB7直连primary命令的不同
最近一直在使用GPDB7的版本进行学习,经常需要客户端psql连接primary进行验证,而连接primary必须使用维护模式时的命令:
yzsDBA
2022/12/27
3420
GPDB6和GPDB7直连primary命令的不同
《JavaScript 模式》读书笔记(6)— 代码复用模式1
  我们有开始进入新篇章了。这篇内容主要讲代码复用模式,实际上代码复用,就是继承啊,原型啊,构造函数啊等等这一类的内容。对于前端进阶来说,是很重要的基础知识。这一篇内容会对原型、 继承有很深入的讲解。我也会尽我所能的为大家讲清楚、分析透彻。
zaking
2020/04/21
4240
《JavaScript 模式》读书笔记(6)— 代码复用模式1
点击加载更多

相似问题

python中的a=[1]和[1]有什么不同?

40

javascript中"1"+"1“& "1”-- "1“的两种不同结果

20

JavaScript和PHP中的RSA-SHA1 1签名不同

17

[1][1]和[1][0]在JavaScript中的结果

26

为什么(([]===[])+/-/)[1] = 'a‘和(1+{})[(1<<1)+1] = 'b’在javascript中?

32
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文