Retired Document
Important: This document may not represent best practices for current development. Links to downloads and other resources may no longer be valid.
Ending an NSTask
Normally, you want the task that you’ve launched to run to completion. When the task exits, the corresponding NSTask
object posts an NSTaskDidTerminateNotification
to the default notification center. You can add one of the custom objects in your program as an observer of the notification and check the task’s exit status (using terminationStatus
) in the observer method. For example:
-(id)init { |
self = [super init]; |
[[NSNotificationCenter defaultCenter] addObserver:self |
selector:@selector(checkATaskStatus:) |
name:NSTaskDidTerminateNotification |
object:nil]; |
return self; |
} |
- (void)checkATaskStatus:(NSNotification *)aNotification { |
int status = [[aNotification object] terminationStatus]; |
if (status == ATASK_SUCCESS_VALUE) |
NSLog(@"Task succeeded."); |
else |
NSLog(@"Task failed."); |
} |
If you need to force a task to end execution, send a terminate
message to the NSTask
object. If the NSTask
object gets released, however, NSTaskDidTerminateNotification
does not get sent, as the port the message would have been sent on was released as part of the task release.
Copyright © 2006 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2006-04-04