2015-12-09 36 views
-4

中的引用變量在一種方法中,保存,我設置了一個屬性saveUnderway。ios/objective-c:方法

-(void) save { 
BOOL saveUnderway=YES; 
} 

我該如何從同一個類的另一個方法引用它?

-(void) someOtherMethod { 
if ([self save.saveUnderway]==YES) { //this line throws error expected ']' 
//do something 
} 
} 

如果可能,我想避免在.h文件中設置屬性。感謝您的任何建議。

+0

你試圖從其他方法設置保存方法的布爾值? –

+0

不檢索它。但是,根據Joe的回答,我想我必須將它作爲接口擴展來存儲。 – user1904273

回答

1

saveUnderway只有在-save方法的範圍內可用時,它的聲明如下所示。如果你不想在.h文件中設置一個屬性,你可以在.m文件的上面設置一個接口擴展,在你的@implementation調用上面聲明屬性。它看起來像這樣。

@interface MyClass() 

@property (nonatomic, assign) BOOL saveUnderway;  

@end 

然後你就可以通過調用self.saveUnderway

如果你不想安裝的屬性在所有訪問此你也可以聲明變量這樣

@implementation MyClass { 
    BOOL _saveUnderway; // Convention usually has an _ before the variable name which is why I put it here. 
} 

然後你就可以通過在類中的任何方法內調用_saveUnderway來訪問它。

+0

Thx。不知道爲什麼這麼多倒票。當用戶在保存按鈕上點擊兩次時,saveUnderway可能會很有用。如果第一次保存已經在進行中,則阻止第二次保存是有用的。 – user1904273

+0

反對票的原因是,從你問這個問題的方式來看,你看起來幾乎沒有任何對objective-c的理解。您嘗試以某種沒有任何意義的方式訪問saveUnderway變量。很多人認爲這個問題質量不是很高。儘管每個人都從某處開始!祝你的項目好運。 –

0

喬貝爾給出了一個很好的答案。

請記住,如果你想在其他地方使用該布爾值,你可以使用NSUserDefaults來存儲一些東西,但不要忘記重置該值,以免它混淆。