在目标C中,我希望将一个变量从一个.m调用到另一个.m
这是在Example1.h中将myvar声明为int
Example1.m
myvar = myvar+10
Example2.m
if (myvar == 10){NSLOG("@myvar equals the correct integer: %i",myvar);}
但是,默认情况下myvar将等于0,因为在Example2.m中从Example1.h调用了myvar。
答案 0 :(得分:1)
对于全局值,创建一个类来保存它们并将变量定义为static。您还可以定义类级方法来操作静态变量。我叫我的appState类。您可以将myVar定义为static,然后将类方法(使用+ not - )定义为获取并设置此变量。
以下是我可以从应用程序中的任何位置访问的BOOL示例。
account.h
#import <Foundation/Foundation.h>
@interface Account : NSObject
{
}
+(BOOL)isOffLine;
+(void)setOffLine:(BOOL)newValue;
@end
account.m
#import "Account.h"
@implementation Account
static BOOL _offline;
+(BOOL)isOffLine;
{
return _offline;
}
+(void)setOffLine:(BOOL)newValue
{
_offline = newValue;
}
@end
现在,从我的应用程序中的任何类,我都可以#import account.h
然后使用类似的东西:
if ([Account isOffLine]) {...}
或
[Account setOffLine:YES];
请注意,我没有创建此类的实例。我正在调用类级方法。该值将在我的应用程序中来自不同类的调用之间保持不变。
答案 1 :(得分:1)
我建议您阅读基础知识,或许Object-Oriented Programming with Objective-C可能是一个很好的起点。我的猜测是你应该做的是在一个类中创建一个property并从另一个类中访问它。