0

私はNSNmuber- number(アラーム用)で辞書を設定しています:

#define kTimerNameKey @"kTimerNameKey"
 NSDictionary *userInfo = [NSDictionary dictionaryWithObject:number forKey:kTimerNameKey];

私が代理人に通知を受け取るとき、私はこれを持っています:

NSDictionary *userInfo = notification.userInfo;

ログに記録して、問題がないことを確認できます。

私の問題は、userInfoキーの番号からどのように抽出できますか?私が使用する場合objectForKey:kTimerNameKey、彼はこのキーを知りません(別のクラスにあります)

したがって、デリゲートでuserInfoから番号を抽出することが私の問題です。ありがとう。

4

3 に答える 3

1

[[userinfo objectForKey:kTimerNameKey] intValue]のように、このクラスをintに変換してみてください。

それがうまくいくことを願っています...

于 2012-09-06T08:52:16.667 に答える
1
for (NSString* key in userInfo)
{
    int value = [[userInfo objectForKey:key] intValue];
}  

または、キーを別のクラスに渡します。

于 2012-09-06T08:55:42.263 に答える
0

kTimerNameKeyの定義を含む#import"YourOtherClass.h"だけではいけませんか?

それ以外の場合、NSNotificationを使用して通知を投稿している場合は、数値の値を渡すことができます。

[[NSNotificationCenter defaultCenter] postNotificationName:@"notif_sendNumber" Object:myNumber];

次に、受信クラスで、次のことができます。

-(void)myReceivingMethod:(NSNotification *)notification
{
    NSNumber *receivedNumber = (NSNumber *)[notification object];
}
于 2012-09-06T08:55:39.993 に答える