Ios 如何使用objective-c在xcode中使用共享首选项?

Ios 如何使用objective-c在xcode中使用共享首选项?,ios,objective-c,iphone,xcode8,Ios,Objective C,Iphone,Xcode8,在一个视图控制器中,我存储一些数组值,然后从另一个视图控制器中获取该值。 如何在共享管理器中保存数组值,以及如何从另一个视图控制器检索该数组值?如何在Xcode中使用共享首选项?可能吗?请帮我举个例子,谢谢 我的代码是 idsharedManager{ 静态助理视图*sharedMyManager=nil 静态调度一次 一次一次发送^{ sharedMyManager=[[self alloc]init]; }) 返回sharedMyManager; } 我把它的价值 [[AssistantVi

在一个视图控制器中,我存储一些数组值,然后从另一个视图控制器中获取该值。 如何在共享管理器中保存数组值,以及如何从另一个视图控制器检索该数组值?如何在Xcode中使用共享首选项?可能吗?请帮我举个例子,谢谢

我的代码是

idsharedManager{

静态助理视图*sharedMyManager=nil

静态调度一次

一次一次发送^{ sharedMyManager=[[self alloc]init]; })

返回sharedMyManager; }

我把它的价值


[[AssistantView sharedManager]结果];//如果结果是数组

您应该使用这样的单例类

#import <foundation/Foundation.h>

    @interface MySingleton : NSObject {
    }

     @property (nonatomic, retain) NSArray *mySharedArray;

      +(id)sharedMySingleton;

     @end
并在任何viewController中调用它,如

[[MySingleton sharedMySingleton] mySharedArray];
使用默认值

设置

得到

使用AppDelegate的备选方案

1定义宏

#define APPDELEGATE  ((AppDelegate *)[[UIApplication sharedApplication] delegate])
2为Appdelegate中的对象添加属性

@property (nonatomic) NSArray *arrObjects;
3将对象设置为属性

  APPDELEGATE.arrObjects = @[@"",@""];
4获得价值

  NSArray *globalObjects = APPDELEGATE.arrObjects

1创建一个文件,将NSObject作为子类,即SharedClass

SharedClass.m

    @implementation SharedClass

    + (instancetype)sharedManager {
        static SharedClass *sharedManager = nil;
        static dispatch_once_t onceToken;
        dispatch_once(&onceToken, ^{
            sharedManager = [[self alloc] init];
        });
        return sharedManager;
    }

    - (instancetype)init {
        if (self = [super init]) {

            // alloc or set object here

        return self;
    }
SharedClass.h

#import <Foundation/Foundation.h>

@interface SharedClass : NSObject
+ (instancetype)sharedManager;
// your array    
@end
3设置数组

[[SharedClass sharedManager]setArray];

您应该检查:这是一个非常直接的解释。@Stefan在NSUserDefault中存储数组不是一个好的做法。您可以在AppDelegate文件中声明全局变量,并在不同的ViewController之间共享。他要求在iOS中共享首选项的相互性。我并没有说这是一个好的实践。我只是把我的价值观放在这里[[AssistantView sharedManager]结果];这里的结果是数组。我使用了此选项,但遇到如下错误:-[AssistantView results]:未识别的选择器发送到实例0x7fa5de047200
    @implementation SharedClass

    + (instancetype)sharedManager {
        static SharedClass *sharedManager = nil;
        static dispatch_once_t onceToken;
        dispatch_once(&onceToken, ^{
            sharedManager = [[self alloc] init];
        });
        return sharedManager;
    }

    - (instancetype)init {
        if (self = [super init]) {

            // alloc or set object here

        return self;
    }
#import <Foundation/Foundation.h>

@interface SharedClass : NSObject
+ (instancetype)sharedManager;
// your array    
@end
[[SharedClass sharedManager]array];
[[SharedClass sharedManager]setArray];