目標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