+ All Categories
Home > Technology > [ios] Protocols and Basic Queue

[ios] Protocols and Basic Queue

Date post: 28-Nov-2014
Category:
Upload: jun-shimizu
View: 795 times
Download: 1 times
Share this document with a friend
Description:
PT.BUZOO INDONESIA is No1 Japanese offshore development company in Indonesia. We are professional of web solution and smartphone apps. We can support Japanese, English and Indonesia. We are hiring now at http://buzoo.co.id/
16
Protocols and Basic Queue Hendy Christianto
Transcript
Page 1: [ios] Protocols and Basic Queue

Protocols and Basic QueueHendy Christianto

Page 2: [ios] Protocols and Basic Queue

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.

Page 3: [ios] Protocols and Basic Queue

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.

Page 4: [ios] Protocols and Basic Queue

Protocols DeclarationFirst, we create an Object, for example CustomActionSheet.h, and write this code down

Page 5: [ios] Protocols and Basic Queue

Protocols Declaration (cont’d)- In the class CustomActionSheet.m we include a

button with this action

Page 6: [ios] Protocols and Basic Queue

Protocols Implementation on Controller On your controller, Import CustomActionSheet.h, and

implement the delegate protocols on the interface <CustomAlertViewDelegate>

Page 7: [ios] Protocols and Basic Queue

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)

Page 8: [ios] Protocols and Basic Queue

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

Page 9: [ios] Protocols and Basic Queue

Q&A

Page 10: [ios] Protocols and Basic Queue

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.

Page 11: [ios] Protocols and Basic Queue

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)

Page 12: [ios] Protocols and Basic Queue

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.

Page 13: [ios] Protocols and Basic Queue

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.

Page 14: [ios] Protocols and Basic Queue

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 :

Page 15: [ios] Protocols and Basic Queue

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

Page 16: [ios] Protocols and Basic Queue

Sources http://zeroheroblog.com/ios/concurrency-in-ios-grand-cent

ral-dispatch-gcd-dispatch-queues

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CCwQFjAA&url=http%3A%2F%2Fdeveloper.apple.com%2Flibrary%2Fios%2Fdocumentation%2Fcocoa%2Fconceptual%2FProgrammingWithObjectiveC%2FWorkingwithProtocols%2FWorkingwithProtocols.html&ei=M_63Uqu0GYSLrQeAr4HABw&usg=AFQjCNFgnNO3Xi_gz20n-N60xaJKAYzvPQ&sig2=mPvFV2GQCGvQdjLJ4bXdkw&bvm=bv.58187178,d.bmk

http://rypress.com/tutorials/objective-c/protocols.html


Recommended