Я выполнил следующие команды в LLDB без большого промежутка времени между ними:
(lldb) po [NSBundle bundleWithIdentifier:@"com.apple.Preview"]
nil
(lldb) po [NSBundle bundleWithPath:@"/Applications/Preview.app"]
NSBundle </Applications/Preview.app> (not yet loaded)
(lldb) po [NSBundle bundleWithIdentifier:@"com.apple.Preview"]
NSBundle </Applications/Preview.app> (not yet loaded)
Поэтому иногда идентификатор пакета не может использоваться для инициализации определенного NSBundle
, но затем что-то происходит в фоновом режиме(предположительно, индексация?), и затем он волшебным образом работает.
В чем причина этого, и могу ли я что-нибудь сделать, чтобы избежать этого из моего собственного приложения?