Creating iOS 5 Apps Discussion > Page 326 - clarification: used different argument name in implementation
Same thing on page 331, accessHandler is used for the argument name in the interface, completionHandler in the implementation.

Again on page 333, but this time the code uses accessHandler vs. all other instances of this argument (including the definition) use completionHandler. As is, this will produce an error. I sense that there was some code refactoring going on and these are just some minor oversights. Should be easy for the reader to identify and fix, but if you came here looking for help, now you know what to do. While there may be additional instances of this typo in the text going forward, I will not continue to post them.

Thanks Scott - I made the same mistake (!) of copy paste the function from interface to implementation and spend some time to figure out the errors until i read this post! silly me

I think this was a refactoring/copy-paste bug. I think I refactored it when updating the code from iOS 4 to iOS 5, but copy/pasted the description that I'd originally written for iOS 4, thinking there were no changes.
I have it listed in the errata, though it's just a minor one-line mention. Maybe I need to make it clearer?
-Rich-

On page 325 we declare...
+ (void)accessWeightHistory:(historyAccessHandler)completionHandler;
...yet on the next page it states to implement...
+ (void)accessWeightHistory:(historyAccessHandler)accessHandler
{
NSURL *url;
if ([self isCloudAvailable])
{
[self queryForCloudHistory:accessHandler];
}
...
This isn't errata, but if the reader copies and pastes the declaration from interface to implementation, and then goes about typing in the code as directed, they'll get a warning. Matching the argument name passed in with its use throughout the method eliminates the warning.