SlideShare une entreprise Scribd logo
1  sur  16
Protocols and
Basic Queue
Hendy Christianto
What is protocols?






Protocols is methods (like other method in
objective C), like a regulations needed to
implement a class.
For example : In traffic rules, there are some
law required for someone who want to drive
a car, like having a driving license, obey the
traffic lights, etc.
A protocol is a group of related properties
and methods that can be implemented by
any class.
Why use protocols?
 They

are more flexible than a normal
class.
 Produce a reusable code (you don’t
need to import your class controller), since
they let you to reuse a single API
declaration in completely unrelated class.
Protocols Declaration
First, we create an Object, for example CustomActionSheet.h,
and write this code down
Protocols Declaration (cont’d)
-

In the class CustomActionSheet.m we include a button
with this action
Protocols Implementation on
Controller


On your controller, Import CustomActionSheet.h, and
implement the delegate protocols on the interface
<CustomAlertViewDelegate>
Protocols Implementation on
Controller (Cont’d)


Implement the protocol method on your viewcontroller.m
(don’t forget to include, since it’s required, or your app will
crash)
Conclusions
 Using

this protocols function, you can
create your own library functions (or even
framework)
 Protocols can make your code even
easier because of it’s own flexibility
Q&A
Concurrency Programming :
Dispatch Queue (GCD)
Grand Central Dispatch (GCD) takes the
thread management code you would
normally write in your own applications and
moves that code down to the system level.
All you have to do is define the tasks you
want to execute and add them to an
appropriate dispatch queue. GCD takes
care of creating the needed threads and
of scheduling your tasks to run on those
threads.
What is GCD for ?
 Schedules

your tasks, and execute them
in the order in which they arrive. They can
either concurrent or serial. A concurrent
queue will execute many jobs
simultaneously (do not wait with the next
job until any previous ones finish), a serial
queue will only execute one job at a time.
(FIFO)
Types of GCD
 The

main queue : task submitted to the
main thread of our app.
 Global queues : task submitted to the
entire process.
 Private queues : queues that created by
our own with dispatch_queue_create,
Can be used as synchronization
mechanism.
When to use?
For example, for database accessing.
Database is a sensitive process, you have to
prevent deadlock (accessing and update
from many connections) that’s why database
connection and access can be accessed
one at a time.
Thus, you have to make a schedule and
queue for any task that want to access the
database.
Private queue


You can create queue by make an identifier.



This will create a private queue with synchronized
queue
You can implement the queue and add tasks with
following code :


Dispatch_Sync &
Dispatch_async




Dispatch sync is mutex lock. In other words, it will wait the task
to complete and then add another task
Dispatch async is not mutex lock. In other words, it won’t wait
for another task to completely finished, it will run another task.
Example :

It may print 2413 or 2143 or 1234 but 1 always before 3

It will always print 1234
Sources





http://zeroheroblog.com/ios/concurrency-in-ios-grandcentral-dispatch-gcd-dispatch-queues
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&sourc
e=web&cd=1&cad=rja&ved=0CCwQFjAA&url=http%3A%2F
%2Fdeveloper.apple.com%2Flibrary%2Fios%2Fdocumentati
on%2Fcocoa%2Fconceptual%2FProgrammingWithObjectiv
eC%2FWorkingwithProtocols%2FWorkingwithProtocols.html&
ei=M_63Uqu0GYSLrQeAr4HABw&usg=AFQjCNFgnNO3Xi_gz2
0nN60xaJKAYzvPQ&sig2=mPvFV2GQCGvQdjLJ4bXdkw&bvm=
bv.58187178,d.bmk
http://rypress.com/tutorials/objective-c/protocols.html

Contenu connexe

Plus de Jun Shimizu

Plus de Jun Shimizu (6)

[Android] Google Play in app billing
[Android] Google Play in app billing[Android] Google Play in app billing
[Android] Google Play in app billing
 
[Android] PLAYING WITH FRAGMENT
[Android] PLAYING WITH FRAGMENT[Android] PLAYING WITH FRAGMENT
[Android] PLAYING WITH FRAGMENT
 
[PHP] Zend_Db (Zend Framework)
[PHP] Zend_Db (Zend Framework)[PHP] Zend_Db (Zend Framework)
[PHP] Zend_Db (Zend Framework)
 
Clean code lecture part I
Clean code lecture part IClean code lecture part I
Clean code lecture part I
 
Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
 
Regex lecture
Regex lectureRegex lecture
Regex lecture
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

[ios] Protocols and Basic Queue