我沒有足夠的C知識來解決這方面的問題。我可以使用類方法來設置靜態變量嗎?
我有大量的NSManagedObjects
這是從我目前正在工作的級別下降 - 我的視圖控制器正在顯示一個父對象的表,其中顯示的每個對象的詳細指標顯示子對象的數量。
用戶可以創建一組存儲在NSDictionary
中的過濾條件。我的子對象有一套複雜的計算,它們根據這些標準來執行,以確定它們是通過還是不通過過濾器。這由一個簡單的只讀布爾屬性在外部表示。
我想要做的是在子對象中有一個靜態變量來存放過濾器設置字典,這樣我就不必調用用戶默認值或類似的方法來獲取每個子對象的過濾器設置。
在用戶創建過濾器設置的時候,我沒有任何特定的指向子對象的指針,並且我不想創建一個獲取請求只是爲了獲得一個 - 所以會有東西像這樣適合?
.H:
@interface Child : NSManagedObject
+(void)setFilterSettings:(NSDictionary*)newFilterSettings;
@end
.M:
static NSDictionary *filterSettings;
@implementation Child
+(void)setFilterSettings:(NSDictionary*)newFilterSettings
{
filterSettings = newFilterSettings;
}
@end
當過濾器的設置是由:
[Child setFilterSettings:newFilterSettings];
假設這是有效的,有什麼東西,做我需要做內存管理?我正在使用ARC。
是的,你可以;但它不是C(如在你的標題中),但是Objective C –
@BasileStarynkevitch - 它使我困惑的靜態變量的範圍,它們存在於C中還是僅僅是objective-C? – jrturton
@hypercrypt - 他們都是 – jrturton