我们开发了将由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).请有人告诉我完成任务的方法,我最终会尝试所有方面的逻辑.
我使用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进一步使用.
| 归档时间: |
|
| 查看次数: |
143 次 |
| 最近记录: |