我的didFinishLaunchingWithOptions
方法存儲UIApplicationLaunchOptionsURLKey
的文件名並嘗試打開它。iOS 9:如何在不出現錯誤257的情況下訪問UIApplicationLaunchOptionsURLKey?
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSURL* url = [launchOptions objectForKey:UIApplicationLaunchOptionsURLKey];
NSError* err;
if ([url checkResourcesIsReachableAndReturnError:&err])
{
...
}
}
對於iOS 8,此代碼正常工作。我的應用程序被啓動,因爲某些其他應用程序中選擇「打開」我的應用程序,但適用於iOS 9這個代碼不工作,我也得到
ERR = NSCocoaErrorDomain:代碼257:「文件‘XXX’無法打開 ,因爲您無權查看它。「
「的操作無法完成操作不允許」
非常重要的注意事項:當我的應用程序被關閉,而用戶試圖從另一個應用程序打開文件這隻發生。我發現在UIApplicationLaunchOptionsURLKey中發送的文件確實與我的應用程序不在同一個沙箱中。如果它沒有關閉,只是最小化,所有的行爲都很好,因爲UIApplicationLaunchOptionsURLKey在同一個沙箱中。