Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: NSTimer



Solved:  I didn't know how to use NSInvocation correctly.

I had to add calls to -[NSInvocation setSelector:] and -[NSInvocation
setTarget:] before I put it in the NSTimer.  Worked great after it knew what
message it needed to send and where to send it. *blush*

Thanks for the replies that got me digging in the right direction, though.

-----Original Message-----
From: cocoa-dev-bounces+tophu=email@hidden
[mailto:cocoa-dev-bounces+tophu=email@hidden] On Behalf Of
Christopher Hickman
Sent: Wednesday, August 31, 2005 2:39 PM
To: Cocoa Mailing List
Subject: NSTimer

Hi folks,

I have an NSTimer that I'm trying to use to periodicly call a method.   
The
timer gets created, but it doesn't call my method when it fires.  Here's
my code, do you see anything wrong?

-(void)incrementProgressIndicator;
{
	NSLog(@"incrementProgressIndicator"); //Never logs
	//progressIndicator is an NSProgressIndicator IBOutlet of this
object
	//incrementAmount is a double ivar with a written accessor
	if (progressIndicator != nil) {[progressIndicator incrementBy:[self

incrementAmount]];}
}

-(void)incrementProgressIndicatorEveryTimeInterval: 
(NSTimeInterval)seconds iterations:(int)iterations;
{
	NSLog(@"incrementProgressIndicatorEveryTimeInterval: %f iterations:

%i", seconds, iterations);
	NSTimer *incrementerTimer;
	NSInvocation *incrementerInvocation;

	incrementerInvocation = [NSInvocation invocationWithMethodSignature:
								[self  
methodSignatureForSelector:@selector(incrementProgressIndicator)]];

	incrementerTimer = [NSTimer scheduledTimerWithTimeInterval:seconds
	
invocation:incrementerInvocation
	
repeats:YES];

	//incrementerTimer needs to be invalidated after it fires
(iterations)  
times, so we set up a
	//second timer to wait (seconds * iterations) seconds and invalidate

the original timer
	[NSTimer scheduledTimerWithTimeInterval:(seconds*iterations)
			 invocation:[NSInvocation
invocationWithMethodSignature:
							[incrementerTimer  
methodSignatureForSelector:@selector(invalidate)]]
			 repeats:NO];

}

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/email@hidden

This email sent to email@hidden


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/email@hidden

This email sent to email@hidden

References: 
 >NSTimer (From: Christopher Hickman <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.