On 04/07/2012, at 3:50 PM, Roland King wrote:
> Put 'NSComparisonResult' after = and before ^ to declare the return value of
> the block in the code below.
That didn't work, but after a few more wild guesses, I stumbled on the correct
form:
NSComparisonResult (^comp)( id<DKStorableObject>, id<DKStorableObject>
) = ^NSComparisonResult( id<DKStorableObject> a, id<DKStorableObject> b )
{
if( a.index < b.index )
return NSOrderedAscending;
else if ( a.index > b.index )
return NSOrderedDescending;
else
return NSOrderedSame;
};
>
> When that fails. Err. Not sure.
That's the trouble - when it doesn't work, even when you follow the examples in
the documentation apparently to the letter, you're stuck.
On 04/07/2012, at 4:12 PM, Ken Thomases wrote:
> t follows the general form for C declarations, such as for function pointers.
> However, blocks can be defined in different contexts than functions, which
> makes it seem out of place. In general, try writing it exactly as though you
> were writing a function. Then replace the function name with either "^" or,
> when defining a variable or typedef, "(^name_of_variable_or_typedef)".
OK, that's a handy bit of help. Mind you, function pointers themselves are not
always that easy to get right, though I haven't run into anywhere near as much
trouble with them as I have with blocks.
Thanks for all the advice,
--Graham
_______________________________________________
Cocoa-dev mailing list ([email protected])
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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]