In ARC defenition myclass *_instance;
mean strong reference at myclass objects. So every assignment to _instance
will retain object.
And there is litle correction of yours code:
static myclass *_instance = nil;
+ (myclass *)sharedInstance {
static dispatch_once_t _onceToken = 0;
dispatch_once(&_onceToken, ^{
_instance = [[myclass alloc] init];
});
return _instance;
}