小编kev*_*ung的帖子

dismissViewControllerAnimated VS popViewControllerAnimated

我想知道它们的不同之处.什么时候我可以打电话

[self dismissViewControllerAnimated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

什么时候打电话

[self.navigationController popViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

根据apple的文档:dismissViewControllerAnimated意味着"解除接收者提供的视图控制器".但我总是不能通过这种方法解雇视图控制器.

uiviewcontroller uinavigationcontroller ios

29
推荐指数
2
解决办法
3万
查看次数

如何从NSError获取更多有用信息?

我想从中获得一些有用的信息NSError.如果我打印出来[error userInfo],我会得到以下信息:

{
    NSFilePath = "/Users/apple/Library/Application Support/iPhone Simulator/5.1/Applications/08260B6A-4D65-48DF-ADD1-FFC8750081E8/Documents/abc";
    NSUnderlyingError = "Error Domain=NSPOSIXErrorDomain Code=17 \"The operation couldn\U2019t be completed. File exists\"";
}
Run Code Online (Sandbox Code Playgroud)

我想显示最后一行:"文件存在",但我怎么能把它拿出来?

我试过了:

localizedDescription
localizedFailureReason
localizedRecoverySuggestion
localizedRecoveryOptions
recoveryAttempter
Run Code Online (Sandbox Code Playgroud)

其中没有显示"文件存在".

nserror ios

13
推荐指数
1
解决办法
2万
查看次数

使用NSUserDefaults杀死应用程序后保存的数据丢失

我在我的设置中使用NSUserDefaults.应用程序运行良好,即使我按下主页键让应用程序进入后台,但如果我杀了应用程序,NSUserDefaults中的数据保存将丢失.这是我的代码.我使用同步.第一次初始化:

 if (![userDefaults integerForKey:
          kORFootageAirPlayModeKey])
    {
        [userDefaults setInteger:TRUE forKey:kORFootageAirPlayModeKey];
    }
    [userDefaults synchronize];
Run Code Online (Sandbox Code Playgroud)

在viewController中读取值:

airPlayMode = [[NSUserDefaults standardUserDefaults]integerForKey:kORFootageAirPlayModeKey];
Run Code Online (Sandbox Code Playgroud)

将其设置为动作:

- (IBAction)changeAirPlayStatus:(id)sender
{

    if (sender)
    {
        airPlayMode = [sender tag];

        [[NSUserDefaults standardUserDefaults] setInteger:airPlayMode forKey:kORFootageAirPlayModeKey];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }
.....
Run Code Online (Sandbox Code Playgroud)

}

nsuserdefaults ios

6
推荐指数
1
解决办法
5009
查看次数