首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何定义目标C中所有类都可以访问的变量?

如何定义目标C中所有类都可以访问的变量?
EN

Stack Overflow用户
提问于 2016-06-22 07:48:53
回答 2查看 57关注 0票数 0

比如:- Class1,我有一个名为tempData的变量。-在Class2中,它可以给tempData赋值。tempData = @"apple"; -在Class3中,它可以得到tempData的值.class3Data = tempData等。//class3Data's value is "apple".

我该怎么办?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-22 07:57:11

使用以下代码创建class1的共享实例

代码语言:javascript
运行
复制
+ (Class1 *)sharedInstance
{
    static dispatch_once_t once;
    static Class1 *shared;
    dispatch_once(&once, ^ { shared = [[Class1 alloc] init]; });
    return shared;
}

并以[Class1 sharedInstance].tempData的形式访问您的变量。但是,如果您想使用简单的数据,比如字符串或整数。您应该在应用程序中任何地方的任何类的主体之外创建一个静态变量。你只需要让它在你想要使用的部分可见。就像在一个文件Class.h .h中,声明如下

代码语言:javascript
运行
复制
static NSString *tempStr = @"test";

@interface Class
//code goes here of class
@end

把这个用到任何地方。只要在想要使用这个的地方使用#import"class.h"即可。

注意:第二种方法的更好方法是创建一个常量文件(头文件),并在该类中声明全局变量。

票数 0
EN

Stack Overflow用户

发布于 2016-06-22 08:59:13

我最喜欢的解决方案(对于常量)是创建一个新的头文件(.h),并按如下方式声明常量:

代码语言:javascript
运行
复制
#define API_ADDR @"http://anURL.com"

在任何需要它的地方,只需导入ExternalVariables.h并:

代码语言:javascript
运行
复制
NSLog(@"%@", API_ADDR);

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37961733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档