单例 --- 线程模式
1.Grand Central Dispatch --- GCD单次执行 --- 程序执行期间之执行一次
- (IBAction)GCD_onceDidClicked:(UIButton *)sender { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ // code }); }
2.在单例中的应用 --- 此方法正吻合单例的特性(只执行一次,只alloc一次)
+ (instancetype)shareMusicToos { static MusicToos *musicTool = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ musicTool = [[MusicToos alloc] init]; [musicTool requestData]; }); return musicTool; }