我有一个定时器,该函数调用一个本地通知计时器,设置了秒数,它应该运行直到被一个按钮停止。
一切都在我的viewcontroller.m文件中。
这是我的代码:
FAIL: test_scale (__main__.Test_svg_glyph)
----------------------------------------------------------------------
Traceback (most recent call last):
File "svg_glyph_test.py", line 322, in test_scale
self.assertEqual(result, exp_result, "Test_svg_glyph_scale test #" + str(test_num))
AssertionError: glyph[15 chars]5000,-0.5000)
l(0.0000,1.0000)
[75 chars] ]) != glyph[15 chars]5000,0.5000)
l(0.0000,1.0000)
[74 chars] ]) : Test_svg_glyph_scale test #1
我的通知即将结束。
maxDiff
答案 0 :(得分:0)
我的第一个建议会在主回路上设置你的计时器。
没有财产:
dispatch_async(dispatch_get_main_queue(), ^{
// Enclose your timer code here
[NSTimer scheduledTimerWithTimeInterval:num1 target:self selector:@selector(notification) userInfo:nil repeats:YES];
});
如果您想保留您的财产:
__weak MyViewController *aBlockSelf = self;
dispatch_async(dispatch_get_main_queue(), ^{
// Enclose your timer code here
aBlockSelf.showTimer = [NSTimer scheduledTimerWithTimeInterval:num1 target:self selector:@selector(notification) userInfo:nil repeats:YES];
});
其次,您不需要像这样继续参考您的计时器 - > self.ShowerTimer
。这是因为Run Loop保留了对重复计时器的强引用。
第三,您的变量命名约定已关闭。 ShowerTimer
应命名为showerTimer
。虽然这与你的问题无关。
最后,您的代码看起来很好,如果通知正在模拟器上运行,请检查您设备上的请勿打扰设置。它应该关闭以显示本地通知。