if it's an optional method, no need to check for the delegate or to cast to NSObject - you should be able to call the responds to selector on self.jobDelegate and it will return false if there is no delegate set