我正在尝试创建一个应该用作数组的结构。
然后同时我需要从不同的视图访问它,所以我猜我现在需要让它成为全球性的,直到我学会了一种更好的方法(尝试了很多来自谷歌搜索的建议)
但是我如何两次声明一个变量呢?
我的意思是既作为我的结构,又作为一个数组?
我正在尝试创建一个应该用作数组的结构。
然后同时我需要从不同的视图访问它,所以我猜我现在需要让它成为全球性的,直到我学会了一种更好的方法(尝试了很多来自谷歌搜索的建议)
但是我如何两次声明一个变量呢?
我的意思是既作为我的结构,又作为一个数组?
有时“全局变量”可能是合适的,但不仅仅是“全局变量”。在 Objective C 中正确的方法是使用单例。
下面是 .h 实现的一部分:
@interface MySingleton : NSObject
@property (nonatomic, strong) NSMutableArray *myArray;
+ (MySingleton *)sharedSingleton
@end
这是 .m 实现的样子:
@implementation MySingletion
@synthesize myArray;
static MySingleton *shared = nil;
- (id)init
{
self = [super init];
if(self)
{
myArray = [[NSMutableArray alloc] init];
}
return self;
}
+ (MySingleton *)sharedSingleton
{
if(shared == nil)
{
shared = [[MySingleton alloc] init];
}
return shared;
}
然后,每当您想从给定的类中访问它时,您将 #import "MySingleton.h" 并像这样访问您的数组:
[MySingleton sharedSingleton].myArray
编辑:但是,这并不意味着每次您需要传递数据时都应该使用单例来完成。单例在某些情况下是正确的,但正如其他人所提到的,在大多数情况下,您应该自己将数据传递给下一个类。
好吧,我刚刚创建了一个新的 h 和 m fil,我在其中放置了很多变量
在 .h 文件中使用 extend 并在 .m 文件中使用 alloc init
然后我只在需要变量的地方包含这个文件。可能有更好的方法,但这是我唯一能想到的方法。