目标C的变量,我希望从一个.M调用变量其他的.m呼叫从一个文件到其他
这是送给MYVAR声明为Example1.h
一个intExample1.m
myvar = myvar+10
Example2.m
if (myvar == 10){NSLOG("@myvar equals the correct integer: %i",myvar);}
然而,在默认情况下MYVAR将等于0,因为MYV从Example2.m中的Example1.h调用ar。
目标C的变量,我希望从一个.M调用变量其他的.m呼叫从一个文件到其他
这是送给MYVAR声明为Example1.h
一个intExample1.m
myvar = myvar+10
Example2.m
if (myvar == 10){NSLOG("@myvar equals the correct integer: %i",myvar);}
然而,在默认情况下MYVAR将等于0,因为MYV从Example2.m中的Example1.h调用ar。
对于全局值,创建一个类来保存这些变量,并将变量定义为静态。您也可以定义类级别的方法来操纵静态变量。我打电话给我的班级appState。您可以将myVar定义为静态,然后将类方法(使用+ 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];
请注意,我没有创建此类的实例。我在调用类级别的方法。该值将在我的应用程序中的不同类的调用之间持续存在。
不起作用。我跟着http://www.otierney.net/objective-c.html#class无法工作 – evdude100 2011-05-14 03:47:49
它适用于我们中的一些人。也许你的代码中有一个错误?如果你发布它,我会尽力帮忙。 – 2011-05-14 03:51:37
谢谢。我已经花了至少4个小时。 Player.h:http://pastebin.com/zCA1pwDw Player.m:http://pastebin.com/bYm6D7SU EntityZombie.h:http://pastebin.com/D7LPyZaD EntityZombie.m:http://pastebin.com/LAvZLTUn – evdude100 2011-05-14 03:56:23
我建议你阅读基础知识,也许Object-Oriented Programming with Objective-C可能是一个很好的开始。我的猜测是,你应该做的是在一个类中创建一个property并从另一个类访问它。
我得到的错误:属性'xcord'尝试使用'超级'EntityZombie中声明的ivar'xcord' – evdude100 2011-05-14 14:28:03
您对术语的使用有点混淆。你不能调用一个变量,并且打印一个整数的格式说明符是'%i'而不是'i%'。 '''符号应该在引号之前。 'NSLOG(@“myvar等于正确的整数:%i”,myvar);' – Mahesh 2011-05-14 02:30:49
@ Mahesh这不是重点......我想myvar被加载到Example2.m – evdude100 2011-05-14 02:51:30