Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何将NSUserDefault值调用到另一个视图控制器?_Iphone_Ios_Cocoa Touch_Ios Simulator - Fatal编程技术网

Iphone 如何将NSUserDefault值调用到另一个视图控制器?

Iphone 如何将NSUserDefault值调用到另一个视图控制器?,iphone,ios,cocoa-touch,ios-simulator,Iphone,Ios,Cocoa Touch,Ios Simulator,//我在单独的类文件中编写了此函数: -(void)Display { NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; NSInteger *Position = [prefs integerForKey:@"currentlevel"]; NSLog(@"------->%i",Position); //This NSLog is returning Value 6

//我在单独的类文件中编写了此函数:

-(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];
}

如果有人有任何解决方案,请帮助我。

试着像这样实施

@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);
    }

为什么不从视图控制器本身的NSUserDefaults中获取值?像这样:

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

如果要设置整数值,请使用以下语句:

[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInt:highScore] forKey:@"kHighScore"];
NSInteger highScore = [[[NSUserDefaults standardUserDefaults] objectForKey:@"kHighScore"] intValue];
如果要获取该值,请使用以下语句:

[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInt:highScore] forKey:@"kHighScore"];
NSInteger highScore = [[[NSUserDefaults standardUserDefaults] objectForKey:@"kHighScore"] intValue];

您应该仅为其类方法创建一个实用程序类。你所做的在很多方面都是错误的。
位置是什么?它是局部变量吗?财产?一种方法?什么的解决方案?我看没有问题。我确实看到您没有显示方法
Position
的代码,这对于理解您的代码非常重要。@Amar Position是我的全局变量属性,我在实现文件中合成了它。谢谢您的解决方案!我想放弃MVC模式,所以我创建了单独的类