通知的簡單使用

  • 模型數(shù)據(jù)

// XMGWine.h
#import <Foundation/Foundation.h>

@interface XMGWine : NSObject
@property (copy, nonatomic) NSString *money;
@property (copy, nonatomic) NSString *name;
@property (copy, nonatomic) NSString *image;

/** 購買的數(shù)量*/
@property (nonatomic ,assign) int count;
@end

// XMGWine.m
#import "XMGWine.h"

@implementation XMGWine


// XMGWineCell.h
#import <UIKit/UIKit.h>

@class XMGWine;
@interface XMGWineCell : UITableViewCell

/** 酒模型*/
@property (nonatomic ,strong) XMGWine *wine;

@end

// XMGWineCell.m

#import "XMGWineCell.h"
#import "XMGWine.h"
#import "XMGCircleButton.h"

@interface XMGWineCell ()
@property (weak, nonatomic) IBOutlet UIImageView *imageImageView;
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) IBOutlet UILabel *moneyLabel;
@property (weak, nonatomic) IBOutlet UILabel *countLabel;
@property (weak, nonatomic) IBOutlet XMGCircleButton *minusButton;

@end
@implementation XMGWineCell

- (void)setWine:(XMGWine *)wine
{
    _wine = wine;
    self.imageImageView.image = [UIImage imageNamed:wine.image];

    self.nameLabel.text = wine.name;

    self.moneyLabel.text = wine.money;

    // 根據(jù)count決定countLabel顯示的文字
    self.countLabel.text = [NSString stringWithFormat:@"%d",wine.count];
    // 根據(jù)count決定減號是否能點擊
    self.minusButton.enabled = (wine.count > 0);
}

/**
 * 加號點擊
 */
- (IBAction)plusClick {
    // 修改模型
    self.wine.count ++ ;
    // 修改界面
    self.countLabel.text = [NSString stringWithFormat:@"%d",self.wine.count];
    // 減號按鈕一定能點擊
    self.minusButton.enabled = YES;

    // 發(fā)布通知
    /**
     *  postNotificationName :  通知的名稱
     *  object :    通知的發(fā)布者
     */
    [[NSNotificationCenter defaultCenter] postNotificationName:@"plusButtonClickNotification" object:self];
}

/**
 *  減號點擊
 */
- (IBAction)minusClick {
    // 修改模型
    self.wine.count -- ;
    // 修改界面
    self.countLabel.text = [NSString stringWithFormat:@"%d",self.wine.count];

    // 減號按鈕不能點擊
    if (self.wine.count == 0) {
        self.minusButton.enabled = NO;
    }

    // 發(fā)布通知
    [[NSNotificationCenter defaultCenter] postNotificationName:@"minusButtonClickNotification" object:self];
}
@end



// ViewController.h
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@end

// ViewController.m


#import "ViewController.h"
#import "XMGWine.h"
#import "MJExtension.h"
#import "XMGWineCell.h"

@interface ViewController () <UITableViewDataSource>
@property (weak, nonatomic) IBOutlet UITableView *tableView;

/** 所有的酒數(shù)據(jù)*/
@property (nonatomic ,strong) NSArray *wineArray;

/** 總價*/
@property (weak, nonatomic) IBOutlet UILabel *totalPriceLabel;
@end

@implementation ViewController

#pragma mark - 懶加載
- (NSArray *)wineArray
{
    if (!_wineArray) {
        _wineArray = [XMGWine mj_objectArrayWithFilename:@"wine.plist"];
    }
    return _wineArray;
}

- (void)viewDidLoad {
    [super viewDidLoad];

    // 監(jiān)聽通知
    NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
    /**
     *  @param addObserver: 誰接收這個通知
     *  @param selector: 調用什么方法
     *  @param name: 通知的名稱
     *  @param object: 通知發(fā)布者
     */
    [center addObserver:self selector:@selector(plusClick:) name:@"plusButtonClickNotification" object:nil];
    [center addObserver:self selector:@selector(minusClick:) name:@"minusButtonClickNotification" object:nil];
}

- (void)dealloc{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

#pragma mark - 通知的監(jiān)聽方法
- (void)plusClick:(NSNotification *)note
{
    // 通知發(fā)布者
    XMGWineCell *cell = note.object;

    // 計算總價
    int totalPrice = self.totalPriceLabel.text.intValue + cell.wine.money.intValue;
    // 設置總價
    self.totalPriceLabel.text = [NSString stringWithFormat:@"%d",totalPrice];
}

- (void)minusClick:(NSNotification *)note
{
    // 通知發(fā)布者
    XMGWineCell *cell = note.object;

    // 計算總價
    int totalPrice = self.totalPriceLabel.text.intValue - cell.wine.money.intValue;
    // 設置總價
    self.totalPriceLabel.text = [NSString stringWithFormat:@"%d",totalPrice];
}

#pragma mark - UITableViewDataSource
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.wineArray.count;
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // 訪問緩存池
    static NSString *ID = @"wine";
    XMGWineCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
    // 設置數(shù)據(jù)
    cell.wine = self.wineArray[indexPath.row];
    return cell;
}
@end



    // 發(fā)出通知
    [LZNotificationCenter postNotificationName:LZUpdateLocationNotification object:nil userInfo:@{@"location" : userLocation}];

    // 添加監(jiān)聽事件
    - (void)setupNote
    {
        [LZNotificationCenter addObserver:self selector:@selector(updateLocation:) name:LZUpdateLocationNotification object:nil];
    }

    - (void)updateLocation:(NSNotification *)noti{

//    NSLog(@"%@", noti.userInfo[@"location"]);
    BMKUserLocation *userLocation = noti.userInfo[@"location"];

    NSLog(@"latitude is %f", userLocation.location.coordinate.latitude);
    NSLog(@"longitude is %f", userLocation.location.coordinate.longitude);

    NSString *str = [NSString stringWithFormat:@"%f,%f", userLocation.location.coordinate.latitude, userLocation.location.coordinate.longitude];
    NSData *data1 = [str dataUsingEncoding:NSUTF8StringEncoding];

    // sendData方法返回值是void,發(fā)送數(shù)據(jù)成功之后,
    [self.mConnection sendData:data1 toHost:@"192.168.2.10" port:18601 withTimeout:-1 tag:0];

    }

    - (void)dealloc
    {
        // 移除通知
        [LZNotificationCenter removeObserver:self];
    }

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末族壳,一起剝皮案震驚了整個濱河市温技,隨后出現(xiàn)的幾起案子俱箱,更是在濱河造成了極大的恐慌,老刑警劉巖抽米,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件走哺,死亡現(xiàn)場離奇詭異画机,居然都是意外死亡,警方通過查閱死者的電腦和手機哲嘲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門罢低,熙熙樓的掌柜王于貴愁眉苦臉地迎上來查辩,“玉大人胖笛,你說我怎么就攤上這事∫说海” “怎么了长踊?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長萍倡。 經(jīng)常有香客問我身弊,道長,這世上最難降的妖魔是什么列敲? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任阱佛,我火速辦了婚禮,結果婚禮上戴而,老公的妹妹穿的比我還像新娘凑术。我一直安慰自己,他們只是感情好所意,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布淮逊。 她就那樣靜靜地躺著,像睡著了一般扶踊。 火紅的嫁衣襯著肌膚如雪泄鹏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天秧耗,我揣著相機與錄音备籽,去河邊找鬼。 笑死绣版,一個胖子當著我的面吹牛胶台,可吹牛的內容都是我干的。 我是一名探鬼主播杂抽,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼诈唬,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了缩麸?” 一聲冷哼從身側響起铸磅,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎杭朱,沒想到半個月后阅仔,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡弧械,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年八酒,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刃唐。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡羞迷,死狀恐怖界轩,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情衔瓮,我是刑警寧澤浊猾,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站热鞍,受9級特大地震影響葫慎,放射性物質發(fā)生泄漏。R本人自食惡果不足惜薇宠,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一偷办、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧澄港,春花似錦爽篷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽铡溪。三九已至漂辐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間棕硫,已是汗流浹背髓涯。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留哈扮,地道東北人纬纪。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像滑肉,于是被迫代替她去往敵國和親包各。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內容