2013-07-19 28 views
3

//我在單獨的類文件中寫了這個功能:如何調用NSUserDefault值到另一個視圖控制器?

-(void)Display 
{ 
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 
    NSInteger *Position = [prefs integerForKey:@"currentlevel"]; 
    NSLog(@"------->%i",Position); 
    //This NSLog is returning Value 6 
    [prefs synchronize];  
} 

//在我viewController我打電話使用對象這個功能我已經爲我的課

@interface ViewController() 
{ 
    //display My class name 
    //disp is object fro my class 
    display *disp; 
} 

@implementation ViewController 

- (void)viewDidLoad 
{ 
    disp = [[display alloc]init]; 
    [disp Display]; 
    NSLog(@"%i",[disp Position]); 
    //this NSLog statement returning value 0 
    [super viewDidLoad]; 
} 

創建如果任何人有任何解決方案請幫幫我。

+2

你應該爲其類方法創建一個實用類。你在做什麼在很多方面都是錯誤的。 – Desdenova

+0

什麼是位置?它是一個局部變量嗎?一個屬性?一個方法? – Amar

+0

解決方案是什麼?我沒有看到問題。我確實看到你沒有顯示你的代碼,這個方法對於理解你的代碼非常重要。 –

回答

3

嘗試實現這樣的..

@implementation ClassA 

     - (void)viewDidLoad 
     { 
      [super viewDidLoad]; 
      // Do any additional setup after loading the view, typically from a nib. 
      [[NSUserDefaults standardUserDefaults]setInteger:100 forKey:@"currentlevel"]; 
      [[NSUserDefaults standardUserDefaults] synchronize]; 
     } 

    @end 

    @implementation ClassB 

    - (void)viewDidLoad 
    { 
     [super viewDidLoad]; 
     // Do any additional setup after loading the view, typically from a nib. 
      int B = [[[NSUserDefaults standardUserDefaults] integerForKey:@"currentlevel"] integerValue]; 

     NSLog(@"Interger Value %d",b); 
    } 
+0

它工程感謝解決方案! –

+0

我最親愛的親愛的...... –

1

爲什麼不能在視圖控制器本身得到的NSUserDefaults的價值?就像這樣:

-(void) viewDidLoad 
    { 
     [super viewDidLoad]; 
     NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 
     NSInteger *Position = [prefs integerForKey:@"currentlevel"]; 
     NSLog(@"------->%i",Position); 
    } 
+0

我想休閒MVC模式,所以我創建了單獨的課程 –

1

如果你想設置一個整數值,然後使用這個聲明:如果您想獲得該值重新然後用這個語句

[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInt:highScore] forKey:@"kHighScore"]; 

NSInteger highScore = [[[NSUserDefaults standardUserDefaults] objectForKey:@"kHighScore"] intValue]; 
相關問題