Re: NSTimer +timerWithTimeInterval:
Re: NSTimer +timerWithTimeInterval:
- Subject: Re: NSTimer +timerWithTimeInterval:
- From: Keary Suska via Cocoa-dev <email@hidden>
- Date: Wed, 29 Apr 2020 15:49:26 -0600
Are the timer values actual numeric constants, or a variable defined earlier in
code?
Keary Suska
Esoteritech, Inc.
"Demystifying technology for your home or business"
> On Apr 29, 2020, at 3:35 PM, Carl Hoefs via Cocoa-dev
> <email@hidden> wrote:
>
> There are no extensions or categories in the project.
> I changed the -newData: method name to -arrivalOfNewData:.
> I changed the newTimer variable name to theTimer.
> I rebooted the machine.
>
> No joy.
>
> I realize this is no longer a Cocoa problem, but what - even theoretically -
> could cause this?
> As shown in the debugger, the timer gets created with the wrong time interval
> value, by a consistent factor of 20.
>
> -Carl
>
>
>> On Apr 29, 2020, at 2:24 PM, Andy Lee <email@hidden> wrote:
>>
>> I did the same just now in a macOS project. Copied your code and added a
>> newData: method. This is with Xcode 11.2.1 on Mojave, 10.4.6. Works fine
>> for me. Weird!
>>
>> @implementation AppDelegate
>>
>> - (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
>> NSTimer *newTimer = [NSTimer timerWithTimeInterval:1.0 // should be 1/sec
>> target:self
>> selector:@selector(newData:)
>> userInfo:nil
>> repeats:YES];
>> [[NSRunLoop mainRunLoop] addTimer:newTimer
>> forMode:NSRunLoopCommonModes];
>> }
>>
>> - (void)newData:(NSTimer *)timer {
>> NSLog(@"timer is %@", timer);
>> }
>>
>> @end
>>
>> 2020-04-29 17:20:45.331469-0400 NSTimerQuestion[21676:3985041] Metal API
>> Validation Enabled
>> 2020-04-29 17:20:46.413190-0400 NSTimerQuestion[21676:3985041] timer is
>> <__NSCFTimer: 0x60000370eb80>
>> 2020-04-29 17:20:47.412968-0400 NSTimerQuestion[21676:3985041] timer is
>> <__NSCFTimer: 0x60000370eb80>
>> 2020-04-29 17:20:48.413525-0400 NSTimerQuestion[21676:3985041] timer is
>> <__NSCFTimer: 0x60000370eb80>
>> 2020-04-29 17:20:49.413373-0400 NSTimerQuestion[21676:3985041] timer is
>> <__NSCFTimer: 0x60000370eb80>
>> 2020-04-29 17:20:50.412610-0400 NSTimerQuestion[21676:3985041] timer is
>> <__NSCFTimer: 0x60000370eb80>
>> ...
>>
>> --Andy
>>
>> On Apr 29, 2020, at 5:15 PM, Alex Zavatone via Cocoa-dev
>> <email@hidden <mailto:email@hidden>> wrote:
>>>
>>> I used your code in an iOS project and it works as expected.
>>>
>>> 2020-04-29 16:14:02.254107-0500 Timer[83275:13268128] Wed Apr 29 16:14:02
>>> 2020
>>> 2020-04-29 16:14:03.254048-0500 Timer[83275:13268128] Wed Apr 29 16:14:03
>>> 2020
>>> 2020-04-29 16:14:04.253957-0500 Timer[83275:13268128] Wed Apr 29 16:14:04
>>> 2020
>>> 2020-04-29 16:14:05.254170-0500 Timer[83275:13268128] Wed Apr 29 16:14:05
>>> 2020
>>> 2020-04-29 16:14:06.254490-0500 Timer[83275:13268128] Wed Apr 29 16:14:06
>>> 2020
>>> 2020-04-29 16:14:07.254570-0500 Timer[83275:13268128] Wed Apr 29 16:14:07
>>> 2020
>>> 2020-04-29 16:14:08.254651-0500 Timer[83275:13268128] Wed Apr 29 16:14:08
>>> 2020
>>> 2020-04-29 16:14:09.253715-0500 Timer[83275:13268128] Wed Apr 29 16:14:09
>>> 2020
>>> 2020-04-29 16:14:10.254741-0500 Timer[83275:13268128] Wed Apr 29 16:14:10
>>> 2020
>>>
>>> I’ll mail you the project offlist.
>>>
>>>
>>>
>>>> On Apr 29, 2020, at 4:07 PM, Carl Hoefs via Cocoa-dev
>>>> <email@hidden <mailto:email@hidden>> wrote:
>>>>
>>>> On Apr 29, 2020, at 1:53 PM, Carl Hoefs via Cocoa-dev
>>>> <email@hidden <mailto:email@hidden>> wrote:
>>>>>
>>>>> On Apr 29, 2020, at 1:43 PM, Steve Mills via Cocoa-dev
>>>>> <email@hidden <mailto:email@hidden>
>>>>> <mailto:email@hidden <mailto:email@hidden>>>
>>>>> wrote:
>>>>>>
>>>>>> On Apr 29, 2020, at 15:36:23, Carl Hoefs via Cocoa-dev
>>>>>> <email@hidden <mailto:email@hidden>> wrote:
>>>>>>>
>>>>>>> When I issue NSTimer's +timerWithTimeInterval::::: method, I'm getting
>>>>>>> unexpected timer firing times (20X faster than expected).
>>>>>>>
>>>>>>> ∙ If I specify 1.0 for the time interval, my method gets called 20
>>>>>>> times/sec.
>>>>>>> ∙ If I specify 20.0 for the time interval, my method gets called 1
>>>>>>> time/sec.
>>>>>>> ∙ If I specify 100.0 for the time interval, my method gets called 5
>>>>>>> times/sec.
>>>>>>> ...etc.
>>>>>>>
>>>>>>> Here is my only invocation, called once and nevermore:
>>>>>>>
>>>>>>> NSTimer *newTimer = [NSTimer timerWithTimeInterval:1.0 // should be
>>>>>>> 1/sec
>>>>>>> target:self
>>>>>>> selector:@selector(newData:)
>>>>>>> userInfo:nil
>>>>>>> repeats:YES];
>>>>>>> [[NSRunLoop mainRunLoop] addTimer:newTimer
>>>>>>> forMode:NSRunLoopCommonModes];
>>>>>>
>>>>>> Sounds like multiple timers are being installed. Set a breakpoint that
>>>>>> logs when hit.
>>>>>>
>>>>>
>>>>> On break, It's always the same timer. This is with time interval set to
>>>>> 20.0:
>>>>>
>>>>> <timer id> <interval> <fire date>
>>>>> <__NSCFTimer: 0x60000323c600> 1.000000 Wed Apr 29 13:50:40 2020
>>>>> <__NSCFTimer: 0x60000323c600> 1.000000 Wed Apr 29 13:50:41 2020
>>>>> <__NSCFTimer: 0x60000323c600> 1.000000 Wed Apr 29 13:50:42 2020
>>>>> . . .
>>>>>
>>>>
>>>> I put a break directly after the creation of the timer, and introspection
>>>> already shows the wrong value for the time interval! And since
>>>> .timeInterval is a readonly attribute, I cannot force it to the correct
>>>> value, nor is there a -setTimeInterval: method.
>>>>
>>>> Argh...
>>>> -Carl
>>>>
>>>>
>>>> _______________________________________________
>>>>
>>>> Cocoa-dev mailing list (email@hidden
>>>> <mailto:email@hidden>)
>>>>
>>>> Please do not post admin requests or moderator comments to the list.
>>>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>>>> <http://lists.apple.com/>
>>>>
>>>> Help/Unsubscribe/Update your Subscription:
>>>>
>>>> This email sent to email@hidden
>>>
>>> _______________________________________________
>>>
>>> Cocoa-dev mailing list (email@hidden
>>> <mailto:email@hidden>)
>>>
>>> Please do not post admin requests or moderator comments to the list.
>>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>>> <http://lists.apple.com/>
>>>
>>> Help/Unsubscribe/Update your Subscription:
>>>
>>> This email sent to email@hidden
>>
>
> _______________________________________________
>
> Cocoa-dev mailing list (email@hidden)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden