辞書が割り当てられており、私のプログラムのappDelegateに行く準備ができています。私はそれが他のファイル内の外部を編集してから読むことになって NSmutableDictionaryがNSCFStringになっているのはなぜですか?
//appdel.m
NSMutableDictionary *dict;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions {
// Overide point for customization after application launch.
dict = [[NSMutableDictionary alloc]init];
dict = HBLoadDictionary(@"/dict.plist");
// Add the tab bar controller's view to the window and display.
[self.window addSubview:tabBarController.view];
[self.window makeKeyAndVisible];
return YES;
}
はので、私は他のファイルに存在することが、この辞書を望んでいました。
//viewcontroller.m
extern NSMutableDictionary *dict;
以降では、キーのオブジェクトを設定することにしました。イベントは単なるEKeventです。私は関数の呼び出しを行うとき
NSString* str = [[NSString alloc] initWithFormat:@"%@", event.eventIdentifier];
NSString *eID = [[NSString alloc]init];
eID = [data valueForKey:@"id"];
[dict setObject:str forKey:eID];
私はこの
を取得します - [NSCFStringのsetObject:forKeyは:]:認識されていないセレクタがある時点でインスタンス
に送られた私もUIImageを得ましたメモリが問題だと私に信じさせるNSCFStringの代わりに、私はそれを正しく処理していません。なぜそれはそれのようなタイプを変えていますか?その原因が関数呼び出しを混乱させる原因となります...
あなたの権利私は保持でcメソッドをラップすることは可能だろうとは思わなかった。漏れがある限り、私はかなりの見解を持っていますが、私はそれらにパッチを当てています。私は静的な変数を持つことについて考えなかった、それは私のシングルトンの権利だろうか? – Ohmnastrum
右の静的変数はシングルトンになります。 [MyAppDelegate dict]のようなものを使ってアクセスします。これは、常に同じオブジェクトを返すクラスメソッドです。実装では、静的なNSMutableDictionary変数をnilに初期化します。宣言の後、変数がnilであるかどうかをチェックし、変数がnilである場合は、上記の答えの行を使用して変数を初期化します。 – lazycs