如何将数据存储到iPhone应用程序

iSh*_*war 1 objective-c ios

我们开发了将由diff的员工使用的iphone应用程序.组织(实际上我们还没有把它作为企业应用程序,而是我们将把这个应用程序放在应用程序商店收费),所以我们想要的是每当有人安装应用程序时,应用程序将第一次打开,一个弹出up会在那里要求输入URL(这将是指向该人员组织的服务器的URL),所以通过代码逻辑,我想要的是当我们将在视图中登录页面时加载我想要检查URL是否已经存储在应用程序中,如果它没有存储,那么我将弹出询问输入URL,如果存储,那么我只是允许他输入登录详细信息.

我的问题是我应该如何存储该URL以及我应该在哪里存储该URL以及我应该如何检查它是否已经存储.我尝试将该URL存储在...其中urlfield.text是我要存储的URL.

NSError *error;
    // For error information

    // Create file manager
    fileMgr = [NSFileManager defaultManager];

    // Point to Document directory
    documentsDirectory = [NSHomeDirectory() 
                          stringByAppendingPathComponent:@"Documents"];
    fileExists = [[NSFileManager defaultManager] fileExistsAtPath:filePath];
    // File we want to create in the documents directory 
    // Result is: /Documents/file1.txt
    filePath = [documentsDirectory 
                stringByAppendingPathComponent:@"file1.txt"];
    str=urlField.text;
    // Write the file
    [str writeToFile:filePath atomically:YES 
            encoding:NSUTF8StringEncoding error:&error];

    // Show contents of Documents directory
    NSLog(@"Documents directory: %@",
          [fileMgr contentsOfDirectoryAtPath:documentsDirectory error:&error]);
Run Code Online (Sandbox Code Playgroud)

我正在检查它是否有使用..

 // fileExists is a BOOL variable
          fileExists = [[NSFileManager defaultManager] fileExistsAtPath:filePath]; 
         NSLog(@"Boolean value:=%d",fileExists);
        if ( fileExists  == 0 ) 
        {
           .......
          ........
        }
Run Code Online (Sandbox Code Playgroud)

但每次我运行应用程序时它返回'0'(表示BOOL变量fileExists).请有人告诉我完成任务的方法,我最终会尝试所有方面的逻辑.

iSh*_*war 5

我使用NSUserDefaults.

首先检查用户是否第一次打开应用程序我检查NSUserDefault的第一个对象的值,如

 //defaults is a object of NSUserDefault 
NSString *URLEntered =[defaults objectForKey:@"URLISENTERED"];
if (!URLEntered)  {

        [defaults setValue:@"0" forKey:@"URLISENTERED"];
    }
Run Code Online (Sandbox Code Playgroud)

URLEntered在第一次返回null,因此我为Key URLISENTERED设置值0

我允许用户输入组织服务器的URL,在其中我将关键URLISENTERED的值设置为1,如

[defaults setValue:@"1" forKey:@"URLISENTERED"];
Run Code Online (Sandbox Code Playgroud)

同时我再接受NSUserDefault的一个对象来存储服务器的URL并将其存储起来

// defaultURL is the object of NSUserDefault, and main URL is the URL of server user entered

[defaultURL setValue:mainURL forKey:@"mainURL"];
Run Code Online (Sandbox Code Playgroud)

所以接下来当用户再次登录到应用程序的值时

[defaults objectForKey:@"URLISENTERED"]
Run Code Online (Sandbox Code Playgroud)

我们设置为1,并且我直接导航用户登录屏幕,并且使用了取得了mainURL的值

mainURL=[defaultURL objectForKey:@"mainURL"];
Run Code Online (Sandbox Code Playgroud)

并使用此URL进一步使用.