Upload
hossam-ghareeb
View
234
Download
3
Embed Size (px)
DESCRIPTION
These slides talk about tricks in Objective-C language while working in iOS apps. It contains info and tricks about Literals, NSString, CGRect and Method Swizzling
Citation preview
1
Objective-c Tricks2014 – Jan
By: Hossam Ghareeb
2
Use Literals
The following is the old way of writing code:
3
The same code can be written as follows:
4
Subscripting
You can use subscripting to access the values inside dictionaries and arrays. This is how the syntax looks:
5
Classes And Selectors From Strings
We can dynamically generate classes and selectors from strings, We do this by using the NSClassFromString and NSSelectorFromString functions:
NSClassFromString will return nil if there isn't a class in the runtime that matches the string
* Required 6
We can also decide in run time which selector to be called based on input:
* Required 7
Method Swizzling Methods are made up of two components. The selector, which is an identifier
for a method, and the IMP, which is the actual implementation that is run. One of the key things about this separation is that a selector and IMP link can be changed. One IMP can have multiple selectors pointing to it.
Subclassing -> This allows you to override a method and call the original implementation, but it means that you have to use instances of this subclass.
Category -> you cannot call the original implementation if you override a method.
Swizzling -> You can override a method without subclassing AND call the original implementation
8
Example make a UINavigationBar green
T this will change all navigation bars in the
app to green, but if I used UIImagePickerController it will be changed too!!!. We have to find new way for that >>>>> Method Swizzling
* Required 9
Method Swizzling Cont. Method swizzling, in short, is switching methods at runtime. So
you can say for UINavigationBar don’t use the standard drawRect:, but instead swap it with a different one
10
Here is the swizzling:
* Required 11
Another problem solved by Swizzling
measure how long the synchronize takes in NSUserDefaults
12
Cont.
13
Example 2
Borders around all UIViews initWithFrame: get a red border,
views that were unarchived (for example as part of XIBs) get a blue border.
14
Surprise the status bar at the top ofan iOS app is drawn by the app itself
* Required 15
How to do that?
* Required 16
Cont.
17
Other tricks objc_msgSend()
This function takes a target, a selector and a list of arguments
18
CGRect Tricks Shrink CGRect:
Different insets for each edge:using UIEdgeInsets(top, left, bottom, right)
19
Cont.
CGRectUnion is UIScrollView’s best friend:if you want use UIScrollView with bunch of subviews, so you have to know only the top-left and bottom-right views:
20
Cont.
Dictionary Representation (to store in in plist on disk):
Print CGRect values :
21
Cont. Storing it in Obj-C Storage Classes
22
Thank you
Any Questions?