【iOS疑问】为什么要实现这个方法?

1.为什么要实现以下初始化方法?

@interface TRMusicListController ()
@property(strong, nonatomic)TRMusicPlayingController *playingVC;
@end

@implementation TRMusicListController

  • (TRMusicPlayingController *)playingVC { // if (!_playingVC) { _playingVC = [[TRMusicPlayingController alloc]initWithNibName:@"TRMusicPlayingController" bundle:nil]; } return _playingVC; }
  1. init初始化 和initWithNibName:@"TRMusicPlayingController" bundle:nil]的区别?

对于UIViewController以及它的子类
直接调用init方法,它会搜索mainBundle,查询是否存在 类名.xib文件,如果找到,则将当前的viewController与xib文件关联起来。如果没有找到,则以普通的方式初始化viewController

相应地,调用 initWithNibName: bundle: 方法它可以让你指定对应的bundle和xib文件