通知センターから通知を受け取るサンプル

通知センターから通知を受け取るために必要なコードを記載しました。このコードを実行すると、「Notification」という文字列が出力され、通知を受け取れたことが判ります。

下記よりサンプルのダウンロードが行えます。

サンプルダウンロード

ソースコード

MyObject.h

1
2
3
4
5
6
7
#import <Foundation/Foundation.h>

@interface MyObject : NSObject

- (void)post;

@end

MyObject.m

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#import "MyObject.h"

@implementation MyObject

- (void)post
{
  //通知センターの取得
  NSNotificationCenter *notificationCenter;
  notificationCenter = [NSNotificationCenter defaultCenter];

  //追加情報に文字列を代入
  NSDictionary *dictionary;
  dictionary = [NSDictionary dictionaryWithObject:@"Notification"
                                           forKey:@"String"];

  //通知する
  [notificationCenter postNotificationName:@"MyNotification"
                                    object:self
                                  userInfo:dictionary];
}

@end

MyObserver.h

1
2
3
4
5
#import <Foundation/Foundation.h>

@interface MyObserver : NSObject

@end

MyObserver.m

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#import "MyObserver.h"

@implementation MyObserver

- (id)init
{
  self = [super init];
  if (self) {
    //通知を受け取ったら「myNotification」メソッドを呼び出すようにする
    NSNotificationCenter *notificationCenter;
    notificationCenter = [NSNotificationCenter defaultCenter];
    [notificationCenter addObserver:self
                           selector:@selector(myNotification:)
                               name:@"MyNotification"
                             object:nil];
  }
  return self;
}

- (void)dialloc
{
  //インスタンスが破棄される前に通知センターの登録を解除
  NSNotificationCenter *notificationCenter;
  notificationCenter = [NSNotificationCenter defaultCenter];
  [notificationCenter removeObserver:self];
}

- (void)myNotification:(NSNotification *)aNotification
{
  //追加情報を取得する
  NSDictionary *userInfo = [aNotification userInfo];
  NSString *str = [userInfo objectForKey:@"String"];

  NSLog(@"%@", str);
}

@end

ViewController.h

1
2
3
4
5
6
7
#import <UIKit/UIKit.h>
#import "MyObject.h"
#import "MyObserver.h"

@interface ViewController : UIViewController

@end

ViewController.m

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
  [super viewDidLoad];
  [self main];
}

- (void)didReceiveMemoryWarning
{
  [super didReceiveMemoryWarning];
}

- (void)main
{
  //インスタンスを生成する
  MyObject *obj = [[MyObject alloc] init];
  MyObserver *observer = [[MyObserver alloc] init];

  [obj post];
}

@end

出力結果

Notification

お薦めの参考書

絶対に挫折しない iPhoneアプリ開発「超」入門 増補改訂第4版
Swiftについて知りたい開発者の方のみならず、プログラミング未経験者の方にも参考になる内容になっています。Swiftの基礎を一から丁寧に解説されており、この書籍があればネットで調べる手間をかなり省くことができると思います。

   このエントリーをはてなブックマークに追加

About

Masaki Hirokawa (@dolice_apps)

デザインエンジニア 廣川政樹の開発ブログ。Objective-Cや Javaなど iPhone/Androidアプリ開発に関する技術情報を掲載しています。

iPhone apps

  • リラックス・ヒーリング(無料)
  • 望みが叶う!引き寄せの法則アプリ(無料)
  • ミステリー - 怖い話や不思議な体験、都市伝説まとめ
  • 浮世絵壁紙 - 美しい日本画ギャラリー(無料)
  • 綺麗な壁紙HD iPhone 7/7 Plus/SE & iPod対応(無料)
  • クールな壁紙HD iPhone 7/7 Plus/SE & iPod対応(無料)

Android apps

  • 浮世絵壁紙 - 美しい日本画ギャラリー
  • 綺麗な高画質壁紙

Objective-C Classes

Tag Cloud

ActionScript(9) ActionScript3(7) Ad(4) Adfurikun(2) AdMob(9) Android(10) Animation(17) AppDelegate(3) ARC(1) ArrayList(1) AVAudioPlayer(4) AVAudioSession(1) AVFoundation(3) Banner(2) Bitmap(1) Camera(4) CGAffineTransform(4) CGBlendMode(2) CGContextRef(1) CGImageRef(1) Classes(44) CLLocationManager(1) ConnectivityManager(1) ContentResolver(1) CoreLocation(2) Delegate(3) Device(7) Display(1) DisplayMetrics(1) Download(101) Facebook(6) Foundation(72) Framework(2) Google Analytics(1) Handler(1) iAd(6) ImageView(1) In-AppPurchase(1) iOS(12) iOS 7(15) iOS 7.1(3) iOS 8(1) iPad(7) iPhone(21) iPhone 6(4) Java(7) JavaScript(2) LINE(4) Localize(1) Magazine(1) MediaStore(1) MFComposeViewController(1) Nend(1) NetworkInfo(1) NSArray(23) NSCalendar(3) NSData(2) NSDate(7) NSDateComponents(2) NSDateFormatter(2) NSDictionary(12) NSEnumerator(1) NSIndexSet(1) NSInteger(6) NSMutableArray(17) NSMutableDictionary(5) NSMutableOrderedSet(7) NSMutableString(4) NSMutableURLRequest(1) NSNotificationCenter(1) NSNumber(1) NSObject(1) NSOrderedSet(7) NSRange(2) NSSelectorFromString(1) NSSet(6) NSString(19) NSTimer(4) NSTimeZone(1) NSURL(7) NSURLConnection(1) NSURLRequest(2) NSUserDefaults(7) NSXMLParser(2) Objective-C(222) PHP(1) Products(14) QuartzCore(3) RSS(2) Runnable(1) Sample(51) Screensaver(9) SDK(2) ShareCompat(1) Social(10) StoreKit(1) Twitter(6) UIAccelerometer(3) UIActionSheet(1) UIActivityIndicator(1) UIActivityIndicatorView(3) UIActivityViewController(1) UIAlertView(5) UIApplication(7) UIButton(4) UIColor(3) UIDatePicker(5) UIDevice(6) UIDeviceOrientation(1) UIEvent(6) UIImage(15) UIImagePickerController(4) UIImageView(12) UIKit(58) UILabel(7) UINavigationBar(4) UINavigationItem(1) UIPasteboard(4) UIScreen(1) UIScrollBar(1) UIScrollView(1) UISlider(3) UIStoryboardSegue(3) UISwitch(1) UITabBar(3) UITableView(4) UITextField(2) UIView(11) UIViewAnimationTransition(1) UIViewController(4) UIWebView(5) WindowManager(1) Xcode(48) Xcode 5(8) Xcode 5.1(2)