cari
  • Log masuk
  • Daftar
Penetapan semula kata laluan berjaya

Ikuti proiects vou berminat dengan andi aet terbaru mengenai mereka

iOS-Delegates

Contoh Perwakilan

Andaikan objek A memanggil B untuk melakukan operasi Setelah operasi selesai, objek A mesti tahu bahawa objek B telah menyelesaikan tugas dan objek A akan melakukan operasi lain yang diperlukan.

Konsep utama dalam contoh di atas ialah

  • A ialah objek perwakilan B
  • B merujuk kepada A
  • A akan melaksanakan kaedah perwakilan B
  • B memberitahu
melalui kaedah perwakilan melalui

(Perwakilan ) Objek

1. Buat aplikasi paparan tunggal

2 Kemudian pilih Fail -> subkelas SampleProtocol NSObject seperti yang ditunjukkan di bawah

addNewFile

5 Kemudian pilih Buat

6 Tambah protokol ke folder SampleProtocol.h dan kemas kini kod seperti yang ditunjukkan di bawah:

#import <Foundation/Foundation.h>// 协议定义@protocol SampleProtocolDelegate <NSObject>@required- (void) processCompleted;@end// 协议定义结束@interface SampleProtocol : NSObject{   // Delegate to respond back
   id <SampleProtocolDelegate> _delegate; }@property (nonatomic,strong) id delegate;-(void)startSampleProcess; // Instance method@end

7. Ubah suai fail SampleProto. kod untuk melaksanakan kaedah contoh: setProtocolName

#import "SampleProtocol.h"@implementation SampleProtocol-(void)startSampleProcess{    
    [NSTimer scheduledTimerWithTimeInterval:3.0 target:self.delegate 
	selector:@selector(processCompleted) userInfo:nil repeats:NO];}@end

8 Seret label dari pustaka objek ke UIView untuk menambah UILabel dalam ViewController.xib, seperti yang ditunjukkan di bawah:

9. Buat label IBOutlet dan namakannya myLabel kemas kini kod seperti yang ditunjukkan di bawah dan paparkan SampleProtocolDelegate dalam ViewController.h

#import <UIKit/UIKit.h>#import "SampleProtocol.h"@interface ViewController : UIViewController<SampleProtocolDelegate>{    IBOutlet UILabel *myLabel;}@end

10 Lengkapkan kaedah kebenaran, buat objek untuk SampleProtocol dan panggil kaedah startSampleProcess. Kemas kini fail ViewController.m seperti yang ditunjukkan di bawah

#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad{    [super viewDidLoad];    SampleProtocol *sampleProtocol = [[SampleProtocol alloc]init];
    sampleProtocol.delegate = self;    [myLabel setText:@"Processing..."];    [sampleProtocol startSampleProcess];// Do any additional setup after loading the view, typically from a nib.}- (void)didReceiveMemoryWarning{    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}#pragma mark - Sample protocol delegate-(void)processCompleted{    
    [myLabel setText:@"Process Completed"];}@end

11 Anda akan melihat output seperti yang ditunjukkan di bawah Teg asal akan terus dijalankan Setelah kaedah kebenaran dipanggil oleh objek SampleProtocol, kod tag runner juga akan dikemas kini . delegateLabel

Alat AI Hot
Undress AI Tool
Undress AI Tool

Gambar buka pakaian secara percuma

AI Clothes Remover
AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undresser.AI Undress
Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

Stock Market GPT
Stock Market GPT

Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Alat popular
Notepad++7.3.1
Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac
SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)