請幫忙!我是編程的新手,我遇到了以下麻煩。我正在嘗試編寫我的第一個iphone應用程序,我希望它能夠執行以下操作。我可以根據文件是否保存來更改應用視圖嗎?
當應用程序啓動用戶輸入名稱時,按下按鈕並轉到新視圖。他們的名字被保存到文件中並在整個應用程序中使用。我已經管理了很多。
我希望應用程序檢查啓動時是否存在保存的文件,並直接轉到第二個視圖而不是第一個視圖。我有搜尋天尋找答案,我仍然不知道如何做到這一點。
在看似愚蠢的風險我使用IF語句,我該如何寫它。請幫忙。
感謝您提前。
請幫忙!我是編程的新手,我遇到了以下麻煩。我正在嘗試編寫我的第一個iphone應用程序,我希望它能夠執行以下操作。我可以根據文件是否保存來更改應用視圖嗎?
當應用程序啓動用戶輸入名稱時,按下按鈕並轉到新視圖。他們的名字被保存到文件中並在整個應用程序中使用。我已經管理了很多。
我希望應用程序檢查啓動時是否存在保存的文件,並直接轉到第二個視圖而不是第一個視圖。我有搜尋天尋找答案,我仍然不知道如何做到這一點。
在看似愚蠢的風險我使用IF語句,我該如何寫它。請幫忙。
感謝您提前。
如果你使用NSUserDefaults來保存它,那麼你所要做的就是嘗試將值讀入一個字符串,然後檢查它是否爲零,如果是,那麼文件不在那裏,你會加載你的第一個看法,如果是的話,然後加載你的第二個視圖。
NSString *tempStr = [[NSUserDefaults standardUserDefaults] objectForKey:@"yourKey"];
if(tempStr == nil)
{
//load your first view
}
else
{
// load your second view
}
你需要背出讀取你的關鍵,爲了測試是否是零,你這樣做的話,你就永遠是零,總是會使用其他的選擇,你需要設置你的對象其他地方,可能在if語句中。
-(IBAction)LogInButton:(id)sender
{
NSString *tempStr = [[NSUserDefaults standardUserDefaults] objectForKey:@"UserName"];
if (tempStr == nil || [tempStr isEqualToString:""])
{
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:Name.text forKey:@"UserName"];
[prefs synchronize];
ClubSearchViewController *CSearch = [[ClubSearchViewController alloc]initWithNibName:@"ClubSearchViewController" bundle:Nil];
[self presentModalViewController:CSearch animated:YES];
}
else
{
SearchMenu *SMenu = [[SearchMenu alloc]initWithNibName:@"SearchMenu" bundle:nil];
[self presentModalViewController:SMenu animated:YES];
}
}
-(IBAction)LogOutButton:(id)sender
{
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:@"" forKey:@"UserName"];
[prefs synchronize];
}
非常感謝您的幫助,但我不知道如何處理此代碼。我是否會這樣做。我試圖把它放在我的.m文件中,我得到以下錯誤。 「預期的標識符或'('之前'['默認和」初始化器「元素不是常數 – wayne 2011-03-16 02:20:32
你會把它放在你的.m文件中,你能發表你寫的東西嗎? – 2011-03-16 12:51:07
請幫忙!NSUserDefaults沒有保存文件。 - (IBAction)LogInButton:(id)sender {NSUserDefaults * prefs = [NSUserDefaults standardUserDefaults]; [prefs setObject:Name forKey:@「UserName」]; [prefs synchronize]; if(Name == nil){ClubSearchViewController * CSearch = [[ClubSearchViewController alloc] initWithNibName:@「ClubSearchViewController」bundle:Nil]; [self presentModalViewController:CSearch animated:YES];} else {SearchMenu * SMenu = [[SearchMenu alloc] initWithNibName:@「SearchMenu」bundle:nil]; [ self presentModalViewController:SMenu animated:YES];}} @IanOswald – wayne 2011-03-16 13:16:33
你必須NSUserDefaults的使用存儲的用戶名和傳遞的話。如果您想存儲更多數據,則必須使用plist(文檔目錄)或核心數據或SQLite。
// Store the data
[[NSUserDefaults standardUserDefaults] setObject:@"yourPasswordString" forKey:@"YourKey"];
// Retrieve the data
NSString *passWord = [[NSUserDefaults standardUserDefaults] objectForKey:@"YourKey"];
一旦檢索到的數據,你必須像檢查的條件,
if(passWord == nil)
{
//load first view
}
else
{
// load second view
}
謝謝!
非常感謝您的幫助,但我不知道如何處理此代碼。我是否會這樣做。我試圖把它放在我的.m文件中,我得到以下錯誤。 「預期的標識符或'('之前'['默認和」初始值設置「元素不是常量 – wayne 2011-03-16 01:26:21
它應該在.m類文件中使用,首先應該存儲數據(您的電子郵件字符串),之後您將檢索字符串從 – Pugal 2011-03-16 08:33:24
任何類請幫助NSUserDefaults的未保存文件 - (IBAction爲)LogInButton:(ID)發送{ \t NSUserDefaults的*首選項= [NSUserDefaults的standardUserDefaults]; \t [首選項的setObject:!名稱forKey:@「用戶名「]; \t [首選項同步]; \t \t 如果(名稱==無){ \t \t ClubSearchViewController * CSearch = [[ClubSearch ViewController alloc] initWithNibName:@「ClubSearchViewController」bundle:Nil]; \t \t [self presentModalViewController:CSearch animated:YES]; \t} \t else { SearchMenu * SMenu = [[SearchMenu alloc] initWithNibName:@「SearchMenu」bundle:nil]; [self presentModalViewController:SMenu animated:YES]; \t} } @Pugal Devan – wayne 2011-03-16 13:06:29
你應該看看NSUserDefaults用於存儲這樣簡單的鍵值信息,它比寫入文件更容易使用(還有一些其他有用的函數來「免費」)。 – Robin 2011-03-15 13:39:22