With ARC and iPhone Simulator 5.0 the following seems to work just fine (no warnings, etc…):

SomeObject.h

@class SomeObject;
@protocol SomeObjectDelegate <NSObject> 
- (void)someObjectDidFinishDoingSomethingUseful:(SomeObject *)object; 
@end
@interface SomeObject : NSObject {
__unsafe_unretained id <SomeObjectDelegate> _delegate;
 }
@property (nonatomic, assign) id <SomeObjectDelegate> delegate; 
@end 


SomeObject.m

#import "SomeObject.h" @implementation SomeObject @synthesize delegate = _delegate; @end