├── .gitignore
├── README.mdown
├── ch03
└── AssocRef
│ ├── AssocRef.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── AssocRef
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── AssocRef-Info.plist
│ ├── AssocRef-Prefix.pch
│ ├── ViewController.h
│ ├── ViewController.m
│ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainStoryboard.storyboard
│ └── main.m
│ └── Default-568h@2x.png
├── ch04
└── ObserverTrampoline
│ ├── Default-568h@2x.png
│ ├── ObserverTrampoline.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── ObserverTrampoline
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── ObserverTrampoline-Info.plist
│ ├── ObserverTrampoline-Prefix.pch
│ ├── ViewController.h
│ ├── ViewController.m
│ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ ├── MainStoryboard_iPad.storyboard
│ │ └── MainStoryboard_iPhone.storyboard
│ └── main.m
│ ├── RNMainThreadTrampoline.h
│ ├── RNMainThreadTrampoline.m
│ ├── RNObserverManager.h
│ └── RNObserverManager.m
├── ch06
├── NonRepeatingCellsExample
│ ├── Default-568h@2x.png
│ ├── NonRepeatingCellsExample.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ └── NonRepeatingCellsExample
│ │ ├── BodyCell.h
│ │ ├── BodyCell.m
│ │ ├── FooterCell.h
│ │ ├── FooterCell.m
│ │ ├── HeaderCell.h
│ │ ├── HeaderCell.m
│ │ ├── NonRepeatingCellsExample-Info.plist
│ │ ├── NonRepeatingCellsExample-Prefix.pch
│ │ ├── NonRepeatingCellsExampleAppDelegate.h
│ │ ├── NonRepeatingCellsExampleAppDelegate.m
│ │ ├── NonRepeatingCellsExampleViewController.h
│ │ ├── NonRepeatingCellsExampleViewController.m
│ │ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ ├── MainWindow.xib
│ │ └── NonRepeatingCellsExampleViewController.xib
│ │ └── main.m
└── TableViewPerformance
│ ├── Default-568h@2x.png
│ ├── TableViewPerformance.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── TableViewPerformance
│ ├── ABTableViewCell.h
│ ├── ABTableViewCell.m
│ ├── CustomCell.h
│ ├── CustomCell.m
│ ├── CustomCell.xib
│ ├── CustomDrawnCell.h
│ ├── CustomDrawnCell.m
│ ├── TableViewPerformance-Info.plist
│ ├── TableViewPerformance-Prefix.pch
│ ├── TableViewPerformanceAppDelegate.h
│ ├── TableViewPerformanceAppDelegate.m
│ ├── TableViewPerformanceViewController.h
│ ├── TableViewPerformanceViewController.m
│ ├── en.lproj
│ ├── InfoPlist.strings
│ ├── MainWindow.xib
│ └── TableViewPerformanceViewController.xib
│ ├── iOS6.png
│ └── main.m
├── ch07
├── AutoLayoutDemo
│ ├── AutoLayoutDemo.xcodeproj
│ │ └── project.pbxproj
│ └── AutoLayoutDemo
│ │ ├── AutoLayoutDemo-Info.plist
│ │ ├── AutoLayoutDemo-Prefix.pch
│ │ ├── MKAppDelegate.h
│ │ ├── MKAppDelegate.m
│ │ ├── MKViewController.h
│ │ ├── MKViewController.m
│ │ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainStoryboard.storyboard
│ │ ├── ios6.png
│ │ └── main.m
└── CollectionViewDemo
│ ├── CollectionViewDemo.xcodeproj
│ └── project.pbxproj
│ ├── CollectionViewDemo
│ ├── CollectionViewDemo-Info.plist
│ ├── CollectionViewDemo-Prefix.pch
│ ├── MKAppDelegate.h
│ ├── MKAppDelegate.m
│ ├── MKDetailsViewController.h
│ ├── MKDetailsViewController.m
│ ├── MKPhotoCell.h
│ ├── MKPhotoCell.m
│ ├── MKViewController.h
│ ├── MKViewController.m
│ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainStoryboard.storyboard
│ └── main.m
│ └── Photos
│ ├── DSC00003.jpg
│ ├── DSC00023.jpg
│ ├── DSC00231.JPG
│ ├── DSC00452.JPG
│ ├── DSC00592.JPG
│ ├── DSC00597.JPG
│ ├── DSC00598.JPG
│ ├── DSC00601.JPG
│ ├── DSC00602.JPG
│ ├── DSC00603.JPG
│ ├── DSC00606.JPG
│ ├── DSC00609.JPG
│ ├── DSC00610.JPG
│ ├── DSC00615.JPG
│ ├── DSC00616.JPG
│ ├── DSC00617.JPG
│ ├── DSC00620.JPG
│ ├── DSC00699.JPG
│ ├── DSC00705.JPG
│ ├── DSC00712.JPG
│ ├── DSC00736.JPG
│ ├── DSC00738.JPG
│ ├── DSC00777.JPG
│ ├── DSC00844.JPG
│ ├── DSC00851.JPG
│ ├── DSC00863.JPG
│ ├── IMG_0005.JPG
│ ├── IMG_0009.JPG
│ ├── IMG_0010.JPG
│ ├── IMG_0021.JPG
│ ├── IMG_0023.JPG
│ ├── IMG_0149.JPG
│ ├── IMG_0151.JPG
│ ├── IMG_0166.JPG
│ ├── IMG_0180.JPG
│ ├── IMG_0184.JPG
│ ├── IMG_0193.JPG
│ ├── IMG_0206.JPG
│ ├── IMG_0345.JPG
│ ├── IMG_0360.JPG
│ ├── IMG_0362.JPG
│ ├── IMG_0371.JPG
│ ├── IMG_0376.JPG
│ ├── IMG_0397.JPG
│ ├── IMG_3064.JPG
│ ├── IMG_3171.JPG
│ ├── IMG_3235.JPG
│ ├── IMG_3252.JPG
│ ├── IMG_3256.JPG
│ └── IMG_3275.JPG
├── ch08
├── BlurryText
│ ├── BlurryText.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ ├── BlurryText
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── BlurryText-Info.plist
│ │ ├── BlurryText-Prefix.pch
│ │ ├── ViewController.h
│ │ ├── ViewController.m
│ │ ├── en.lproj
│ │ │ ├── InfoPlist.strings
│ │ │ └── MainStoryboard.storyboard
│ │ └── main.m
│ └── Default-568h@2x.png
├── Drawing
│ ├── Default-568h@2x.png
│ ├── Drawing.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── rnapier.pbxuser
│ └── Drawing
│ │ ├── Drawing-Info.plist
│ │ ├── Drawing-Prefix.pch
│ │ ├── DrawingAppDelegate.h
│ │ ├── DrawingAppDelegate.m
│ │ ├── DrawingViewController.h
│ │ ├── DrawingViewController.m
│ │ ├── MYView.h
│ │ ├── MYView.m
│ │ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainStoryboard.storyboard
│ │ └── main.m
├── Graph
│ ├── Default-568h@2x.png
│ ├── Graph.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ └── Graph
│ │ ├── Graph-Info.plist
│ │ ├── Graph-Prefix.pch
│ │ ├── GraphAppDelegate.h
│ │ ├── GraphAppDelegate.m
│ │ ├── GraphView.h
│ │ ├── GraphView.m
│ │ ├── GraphViewController.h
│ │ ├── GraphViewController.m
│ │ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainStoryboard.storyboard
│ │ └── main.m
├── Layer
│ ├── Default-568h@2x.png
│ ├── Layer.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ ├── Layer
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── Layer-Info.plist
│ │ ├── Layer-Prefix.pch
│ │ ├── ViewController.h
│ │ ├── ViewController.m
│ │ ├── en.lproj
│ │ │ ├── InfoPlist.strings
│ │ │ └── MainStoryboard.storyboard
│ │ └── main.m
│ ├── LayerView.h
│ └── LayerView.m
├── Paths
│ ├── Default-568h@2x.png
│ ├── FlowerView.h
│ ├── FlowerView.m
│ ├── Paths.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ └── Paths
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── Paths-Info.plist
│ │ ├── Paths-Prefix.pch
│ │ ├── ViewController.h
│ │ ├── ViewController.m
│ │ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainStoryboard.storyboard
│ │ └── main.m
├── TimeConsuming
│ ├── Default-568h@2x.png
│ ├── TimeConsuming.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ └── TimeConsuming
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── TimeConsuming-Info.plist
│ │ ├── TimeConsuming-Prefix.pch
│ │ ├── ViewController.h
│ │ ├── ViewController.m
│ │ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainStoryboard.storyboard
│ │ └── main.m
└── Transforms
│ ├── Default-568h@2x.png
│ ├── Transforms.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── Transforms
│ ├── FlowerTransformView.h
│ ├── FlowerTransformView.m
│ ├── Transforms-Info.plist
│ ├── Transforms-Prefix.pch
│ ├── TransformsAppDelegate.h
│ ├── TransformsAppDelegate.m
│ ├── TransformsViewController.h
│ ├── TransformsViewController.m
│ ├── en.lproj
│ ├── InfoPlist.strings
│ └── MainStoryboard.storyboard
│ └── main.m
├── ch09
├── Actions
│ ├── Actions.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ ├── Actions
│ │ ├── Actions-Info.plist
│ │ ├── Actions-Prefix.pch
│ │ ├── ActionsAppDelegate.h
│ │ ├── ActionsAppDelegate.m
│ │ ├── ActionsViewController.h
│ │ ├── ActionsViewController.m
│ │ ├── CircleLayer.h
│ │ ├── CircleLayer.m
│ │ ├── en.lproj
│ │ │ ├── InfoPlist.strings
│ │ │ └── MainStoryboard.storyboard
│ │ └── main.m
│ └── Default-568h@2x.png
├── Box
│ ├── Box.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ ├── Box
│ │ ├── Box-Info.plist
│ │ ├── Box-Prefix.pch
│ │ ├── BoxAppDelegate.h
│ │ ├── BoxAppDelegate.m
│ │ ├── BoxViewController.h
│ │ ├── BoxViewController.m
│ │ ├── en.lproj
│ │ │ ├── InfoPlist.strings
│ │ │ └── MainStoryboard.storyboard
│ │ └── main.m
│ └── Default-568h@2x.png
├── BoxTransform
│ ├── BoxTransform.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ ├── BoxTransform
│ │ ├── BoxTransform-Info.plist
│ │ ├── BoxTransform-Prefix.pch
│ │ ├── BoxTransformAppDelegate.h
│ │ ├── BoxTransformAppDelegate.m
│ │ ├── BoxTransformViewController.h
│ │ ├── BoxTransformViewController.m
│ │ ├── en.lproj
│ │ │ ├── InfoPlist.strings
│ │ │ └── MainStoryboard.storyboard
│ │ └── main.m
│ └── Default-568h@2x.png
├── Decoration
│ ├── Decoration.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ ├── Decoration
│ │ ├── Decoration-Info.plist
│ │ ├── Decoration-Prefix.pch
│ │ ├── DecorationAppDelegate.h
│ │ ├── DecorationAppDelegate.m
│ │ ├── DecorationViewController.h
│ │ ├── DecorationViewController.m
│ │ ├── en.lproj
│ │ │ ├── InfoPlist.strings
│ │ │ └── MainStoryboard.storyboard
│ │ └── main.m
│ └── Default-568h@2x.png
├── LayerAnimation
│ ├── Default-568h@2x.png
│ ├── LayerAnimation.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ └── LayerAnimation
│ │ ├── CALayer+RNAnimation.h
│ │ ├── CALayer+RNAnimation.m
│ │ ├── LayerAnimation-Info.plist
│ │ ├── LayerAnimation-Prefix.pch
│ │ ├── LayerAnimationAppDelegate.h
│ │ ├── LayerAnimationAppDelegate.m
│ │ ├── LayerAnimationViewController.h
│ │ ├── LayerAnimationViewController.m
│ │ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainStoryboard.storyboard
│ │ └── main.m
├── Layers
│ ├── Default-568h@2x.png
│ ├── Layers.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ └── Layers
│ │ ├── DelegateView.h
│ │ ├── DelegateView.m
│ │ ├── Layers-Info.plist
│ │ ├── Layers-Prefix.pch
│ │ ├── LayersAppDelegate.h
│ │ ├── LayersAppDelegate.m
│ │ ├── LayersViewController.h
│ │ ├── LayersViewController.m
│ │ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainStoryboard.storyboard
│ │ ├── main.m
│ │ ├── pushing.png
│ │ └── pushing.psd
└── ViewAnimation
│ ├── Default-568h@2x.png
│ ├── ViewAnimation.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── ViewAnimation
│ ├── CircleView.h
│ ├── CircleView.m
│ ├── ViewAnimation-Info.plist
│ ├── ViewAnimation-Prefix.pch
│ ├── ViewAnimationAppDelegate.h
│ ├── ViewAnimationAppDelegate.m
│ ├── ViewAnimationViewController.h
│ ├── ViewAnimationViewController.m
│ ├── en.lproj
│ ├── InfoPlist.strings
│ └── MainStoryboard.storyboard
│ └── main.m
├── ch10
└── RNAssert.h
├── ch11
├── InfiniteScrollingExample
│ ├── Default-568h@2x.png
│ ├── iOS6.png
│ ├── iOS6InfiniteScrolling.xcodeproj
│ │ └── project.pbxproj
│ └── iOS6InfiniteScrolling
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── EGORefreshTableHeaderView.h
│ │ ├── EGORefreshTableHeaderView.m
│ │ ├── MasterViewController.h
│ │ ├── MasterViewController.m
│ │ ├── PullToRefreshViewController.h
│ │ ├── PullToRefreshViewController.m
│ │ ├── RefreshArrow.png
│ │ ├── RefreshArrow@2x.png
│ │ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainStoryboard.storyboard
│ │ ├── iOS6InfiniteScrolling-Info.plist
│ │ ├── iOS6InfiniteScrolling-Prefix.pch
│ │ └── main.m
├── InlineEditingExample
│ ├── Default-568h@2x.png
│ ├── InlineEditingExample.xcodeproj
│ │ └── project.pbxproj
│ └── InlineEditingExample
│ │ ├── InlineEditingExample-Info.plist
│ │ ├── InlineEditingExample-Prefix.pch
│ │ ├── InlineEditingExampleAppDelegate.h
│ │ ├── InlineEditingExampleAppDelegate.m
│ │ ├── InlineEditingExampleViewController.h
│ │ ├── InlineEditingExampleViewController.m
│ │ ├── LabelTextFieldCell.h
│ │ ├── LabelTextFieldCell.m
│ │ ├── LabelTextFieldCell.xib
│ │ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ ├── InlineEditingExampleViewController.xib
│ │ └── MainWindow.xib
│ │ └── main.m
├── MKAccordion
│ ├── Default-568h@2x.png
│ ├── MKAccordion.xcodeproj
│ │ └── project.pbxproj
│ └── MKAccordion
│ │ ├── MKAccordion-Info.plist
│ │ ├── MKAccordion-Prefix.pch
│ │ ├── MKAccordionButton.h
│ │ ├── MKAccordionButton.m
│ │ ├── MKAccordionButton.xib
│ │ ├── MKAppDelegate.h
│ │ ├── MKAppDelegate.m
│ │ ├── MKMasterViewController.h
│ │ ├── MKMasterViewController.m
│ │ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainStoryboard.storyboard
│ │ └── main.m
├── MKDrawerDemo
│ ├── Default-568h@2x.png
│ ├── MKDrawerDemo.xcodeproj
│ │ └── project.pbxproj
│ └── MKDrawerDemo
│ │ ├── MKAppDelegate.h
│ │ ├── MKAppDelegate.m
│ │ ├── MKControlsCell.h
│ │ ├── MKControlsCell.m
│ │ ├── MKControlsCell.xib
│ │ ├── MKDrawerDemo-Info.plist
│ │ ├── MKDrawerDemo-Prefix.pch
│ │ ├── MKMasterViewController.h
│ │ ├── MKMasterViewController.m
│ │ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainStoryboard.storyboard
│ │ └── main.m
└── PullToRefreshExample
│ ├── Default-568h@2x.png
│ ├── iOS6.png
│ ├── iOS6PullToRefresh.xcodeproj
│ └── project.pbxproj
│ └── iOS6PullToRefresh
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── EGORefreshTableHeaderView.h
│ ├── EGORefreshTableHeaderView.m
│ ├── MasterViewController.h
│ ├── MasterViewController.m
│ ├── PullToRefreshViewController.h
│ ├── PullToRefreshViewController.m
│ ├── RefreshArrow.png
│ ├── RefreshArrow@2x.png
│ ├── en.lproj
│ ├── InfoPlist.strings
│ └── MainStoryboard.storyboard
│ ├── iOS6PullToRefresh-Info.plist
│ ├── iOS6PullToRefresh-Prefix.pch
│ └── main.m
├── ch13
├── FavSpots
│ ├── Default-568h@2x.png
│ ├── FavSpots.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ └── FavSpots
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── DetailViewController.h
│ │ ├── DetailViewController.m
│ │ ├── FavSpots-Info.plist
│ │ ├── FavSpots-Prefix.pch
│ │ ├── FavSpots.xcdatamodeld
│ │ ├── .xccurrentversion
│ │ └── FavSpots.xcdatamodel
│ │ │ └── contents
│ │ ├── MapViewAnnotation.h
│ │ ├── MapViewAnnotation.m
│ │ ├── MapViewController.h
│ │ ├── MapViewController.m
│ │ ├── MasterViewController.h
│ │ ├── MasterViewController.m
│ │ ├── ModelController.h
│ │ ├── ModelController.m
│ │ ├── NSCoder+FavSpots.h
│ │ ├── NSCoder+FavSpots.m
│ │ ├── NSCoder+RNMapKit.h
│ │ ├── NSCoder+RNMapKit.m
│ │ ├── Spot.h
│ │ ├── Spot.m
│ │ ├── TextEditViewController.h
│ │ ├── TextEditViewController.m
│ │ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainStoryboard.storyboard
│ │ └── main.m
├── FavSpotsRestore
│ ├── Default-568h@2x.png
│ ├── FavSpots.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ └── FavSpots
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── DetailViewController.h
│ │ ├── DetailViewController.m
│ │ ├── FavSpots-Info.plist
│ │ ├── FavSpots-Prefix.pch
│ │ ├── FavSpots.xcdatamodeld
│ │ ├── .xccurrentversion
│ │ └── FavSpots.xcdatamodel
│ │ │ └── contents
│ │ ├── MapViewAnnotation.h
│ │ ├── MapViewAnnotation.m
│ │ ├── MapViewController.h
│ │ ├── MapViewController.m
│ │ ├── MasterViewController.h
│ │ ├── MasterViewController.m
│ │ ├── ModelController.h
│ │ ├── ModelController.m
│ │ ├── NSCoder+FavSpots.h
│ │ ├── NSCoder+FavSpots.m
│ │ ├── NSCoder+RNMapKit.h
│ │ ├── NSCoder+RNMapKit.m
│ │ ├── Spot.h
│ │ ├── Spot.m
│ │ ├── TextEditViewController.h
│ │ ├── TextEditViewController.m
│ │ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainStoryboard.storyboard
│ │ └── main.m
├── Julia
│ ├── CollectionViewController.h
│ ├── CollectionViewController.m
│ ├── Julia.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ ├── JuliaCell.h
│ ├── JuliaCell.m
│ └── Mandel
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── Julia-Info.plist
│ │ ├── Julia-Prefix.pch
│ │ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainStoryboard.storyboard
│ │ └── main.m
├── JuliaGCD
│ ├── CollectionViewController.h
│ ├── CollectionViewController.m
│ ├── Julia
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── JuliaGCD-Info.plist
│ │ ├── JuliaGCD-Prefix.pch
│ │ ├── en.lproj
│ │ │ ├── InfoPlist.strings
│ │ │ └── MainStoryboard.storyboard
│ │ └── main.m
│ ├── JuliaCalculation.h
│ ├── JuliaCalculation.m
│ ├── JuliaCell.h
│ ├── JuliaCell.m
│ └── JuliaGCD.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
├── JuliaOp
│ ├── CollectionViewController.h
│ ├── CollectionViewController.m
│ ├── Julia
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── JuliaOp-Info.plist
│ │ ├── JuliaOp-Prefix.pch
│ │ ├── en.lproj
│ │ │ ├── InfoPlist.strings
│ │ │ └── MainStoryboard.storyboard
│ │ └── main.m
│ ├── JuliaCell.h
│ ├── JuliaCell.m
│ ├── JuliaOp.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ ├── JuliaOperation.h
│ └── JuliaOperation.m
├── SimpleGCD
│ ├── Default-568h@2x.png
│ ├── SimpleGCD.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ └── SimpleGCD
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── SimpleGCD-Info.plist
│ │ ├── SimpleGCD-Prefix.pch
│ │ ├── ViewController.h
│ │ ├── ViewController.m
│ │ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainStoryboard.storyboard
│ │ └── main.m
└── SimpleOperation
│ ├── Default-568h@2x.png
│ ├── SimpleOperation.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── SimpleOperation
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── SimpleOperation-Info.plist
│ ├── SimpleOperation-Prefix.pch
│ ├── ViewController.h
│ ├── ViewController.m
│ ├── en.lproj
│ ├── InfoPlist.strings
│ └── MainStoryboard.storyboard
│ └── main.m
├── ch14
└── iHotelApp
│ ├── Default-568h@2x.png
│ ├── MKNetworkKit
│ ├── MKNetworkKit-OSX
│ │ ├── MKNetworkKit-OSX.xcodeproj
│ │ │ └── project.pbxproj
│ │ └── MKNetworkKit-OSX
│ │ │ └── MKNetworkKit-OSX-Prefix.pch
│ ├── MKNetworkKit-iOS
│ │ ├── MKNetworkKit-iOS.xcodeproj
│ │ │ └── project.pbxproj
│ │ └── MKNetworkKit-iOS
│ │ │ └── MKNetworkKit-iOS-Prefix.pch
│ ├── MKNetworkKit.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── MKNetworkKit
│ │ ├── Categories
│ │ │ ├── NSAlert+MKNetworkKitAdditions.h
│ │ │ ├── NSAlert+MKNetworkKitAdditions.m
│ │ │ ├── NSData+Base64.h
│ │ │ ├── NSData+Base64.m
│ │ │ ├── NSDate+RFC1123.h
│ │ │ ├── NSDate+RFC1123.m
│ │ │ ├── NSDictionary+RequestEncoding.h
│ │ │ ├── NSDictionary+RequestEncoding.m
│ │ │ ├── NSString+MKNetworkKitAdditions.h
│ │ │ ├── NSString+MKNetworkKitAdditions.m
│ │ │ ├── UIAlertView+MKNetworkKitAdditions.h
│ │ │ └── UIAlertView+MKNetworkKitAdditions.m
│ │ ├── MKNetworkEngine.h
│ │ ├── MKNetworkEngine.m
│ │ ├── MKNetworkKit.h
│ │ ├── MKNetworkOperation.h
│ │ ├── MKNetworkOperation.m
│ │ └── Reachability
│ │ │ ├── Reachability.h
│ │ │ └── Reachability.m
│ ├── Mac-Demo
│ │ └── MKNetworkKit-OSX-Demo
│ │ │ ├── MKNetworkKit-OSX-Demo.xcodeproj
│ │ │ └── project.pbxproj
│ │ │ └── MKNetworkKit-OSX-Demo
│ │ │ ├── AppDelegate.h
│ │ │ ├── AppDelegate.m
│ │ │ ├── MKNetworkKit-OSX-Demo-Info.plist
│ │ │ ├── MKNetworkKit-OSX-Demo-Prefix.pch
│ │ │ ├── en.lproj
│ │ │ ├── Credits.rtf
│ │ │ ├── InfoPlist.strings
│ │ │ └── MainMenu.xib
│ │ │ └── main.m
│ ├── README.mdown
│ ├── SampleImage.jpg
│ ├── ServerTests
│ │ ├── basic_auth.php
│ │ └── digest_auth.php
│ └── iOS-Demo
│ │ ├── MKNetworkKit-iOS-Demo.xcodeproj
│ │ └── project.pbxproj
│ │ ├── MKNetworkKitDemo
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── AuthTestEngine.h
│ │ ├── AuthTestEngine.m
│ │ ├── ExampleDownloader.h
│ │ ├── ExampleDownloader.m
│ │ ├── ExamplePost.h
│ │ ├── ExamplePost.m
│ │ ├── ExampleUploader.h
│ │ ├── ExampleUploader.m
│ │ ├── FlickrCell.h
│ │ ├── FlickrCell.m
│ │ ├── FlickrEngine.h
│ │ ├── FlickrEngine.m
│ │ ├── FlickrTableViewController.h
│ │ ├── FlickrTableViewController.m
│ │ ├── MKNetworkKit-iOS-Demo-Info.plist
│ │ ├── MKNetworkKit-iOS-Demo-Prefix.pch
│ │ ├── ViewController.h
│ │ ├── ViewController.m
│ │ ├── YahooEngine.h
│ │ ├── YahooEngine.m
│ │ ├── en.lproj
│ │ │ ├── InfoPlist.strings
│ │ │ └── MainStoryboard.storyboard
│ │ └── main.m
│ │ └── client.p12
│ ├── iHotelApp.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── iHotelApp
│ ├── Errors_en_US.plist
│ ├── JSONModel.h
│ ├── JSONModel.m
│ ├── MenuItem.h
│ ├── MenuItem.m
│ ├── RESTEngine
│ ├── RESTfulEngine.h
│ └── RESTfulEngine.m
│ ├── RESTError.h
│ ├── RESTError.m
│ ├── RESTfulOperation.h
│ ├── RESTfulOperation.m
│ ├── Review.h
│ ├── Review.m
│ ├── en.lproj
│ ├── InfoPlist.strings
│ ├── MainWindow.xib
│ └── iHotelAppViewController.xib
│ ├── iHotelApp-Info.plist
│ ├── iHotelApp-Prefix.pch
│ ├── iHotelAppAppDelegate.h
│ ├── iHotelAppAppDelegate.m
│ ├── iHotelAppMenuViewController.h
│ ├── iHotelAppMenuViewController.m
│ ├── iHotelAppMenuViewController.xib
│ ├── iHotelAppViewController.h
│ ├── iHotelAppViewController.m
│ └── main.m
├── ch15
├── Connection
│ ├── Connection.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ ├── Connection
│ │ ├── Connection-Info.plist
│ │ ├── Connection-Prefix.pch
│ │ ├── ConnectionAppDelegate.h
│ │ ├── ConnectionAppDelegate.m
│ │ ├── ConnectionViewController.h
│ │ ├── ConnectionViewController.m
│ │ ├── My Example Server.cer
│ │ ├── My Server.cer
│ │ ├── en.lproj
│ │ │ ├── InfoPlist.strings
│ │ │ └── MainStoryboard.storyboard
│ │ └── main.m
│ └── Default-568h@2x.png
├── CryptPic
│ ├── CryptPic.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ ├── CryptPic
│ │ ├── CPAppDelegate.h
│ │ ├── CPAppDelegate.m
│ │ ├── CPCryptController.h
│ │ ├── CPCryptController.m
│ │ ├── CPDecryptViewController.h
│ │ ├── CPDecryptViewController.m
│ │ ├── CPEncyptViewController.h
│ │ ├── CPEncyptViewController.m
│ │ ├── CPPasswordViewController.h
│ │ ├── CPPasswordViewController.m
│ │ ├── CryptPic-Info.plist
│ │ ├── CryptPic-Prefix.pch
│ │ ├── RNCryptManager.h
│ │ ├── RNCryptManager.m
│ │ ├── en.lproj
│ │ │ ├── InfoPlist.strings
│ │ │ └── MainStoryboard.storyboard
│ │ ├── first.png
│ │ ├── first@2x.png
│ │ ├── main.m
│ │ ├── second.png
│ │ └── second@2x.png
│ └── Default-568h@2x.png
└── FileExplorer
│ ├── Default-568h@2x.png
│ ├── FileExplorer.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── FileExplorer
│ ├── DirectoryViewController.h
│ ├── DirectoryViewController.m
│ ├── FileExplorer-Info.plist
│ ├── FileExplorer-Prefix.pch
│ ├── FileExplorerAppDelegate.h
│ ├── FileExplorerAppDelegate.m
│ ├── en.lproj
│ ├── InfoPlist.strings
│ └── MainStoryboard.storyboard
│ └── main.m
├── ch16
└── UIDeviceAdditions
│ ├── UIDevice+MKAdditions.h
│ └── UIDevice+MKAdditions.m
├── ch17
├── Money
│ ├── Money.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ └── Money
│ │ ├── Money-Prefix.pch
│ │ ├── Money.1
│ │ ├── RNMoney.h
│ │ ├── RNMoney.m
│ │ └── main.m
└── find_nonlocalized
├── ch18
└── MKStoreKit.zip
├── ch20
└── ZipText
│ ├── Default-568h@2x.png
│ ├── ZipText.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── ZipText
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Lorem.txt
│ ├── ViewController.h
│ ├── ViewController.m
│ ├── ZipText-Info.plist
│ ├── ZipText-Prefix.pch
│ ├── ZipTextView.h
│ ├── ZipTextView1.m
│ ├── ZipTextView2.m
│ ├── ZipTextView3.m
│ ├── ZipTextView4.m
│ ├── ZipTextView5.m
│ ├── en.lproj
│ ├── InfoPlist.strings
│ ├── ViewController_iPad.xib
│ └── ViewController_iPhone.xib
│ └── main.m
├── ch21
└── StoryboardTransition
│ ├── StoryboardTransition.xcodeproj
│ └── project.pbxproj
│ └── StoryboardTransition
│ ├── CustomSegue.h
│ ├── CustomSegue.m
│ ├── MKAppDelegate.h
│ ├── MKAppDelegate.m
│ ├── MKDetailViewController.h
│ ├── MKDetailViewController.m
│ ├── MKMasterViewController.h
│ ├── MKMasterViewController.m
│ ├── StoryboardTransition-Info.plist
│ ├── StoryboardTransition-Prefix.pch
│ ├── en.lproj
│ ├── InfoPlist.strings
│ └── MainStoryboard.storyboard
│ └── main.m
├── ch22
├── KVC-Collection
│ ├── DataModel.h
│ ├── DataModel.m
│ ├── Default-568h@2x.png
│ ├── KVC-Collection.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ ├── KVC-Collection
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── KVC-Collection-Info.plist
│ │ ├── KVC-Collection-Prefix.pch
│ │ ├── en.lproj
│ │ │ ├── InfoPlist.strings
│ │ │ └── MainStoryboard.storyboard
│ │ └── main.m
│ ├── KVCTableViewController.h
│ ├── KVCTableViewController.m
│ ├── RootViewController.h
│ └── RootViewController.m
├── KVC
│ ├── Default-568h@2x.png
│ ├── KVC.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ └── KVC
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── KVC-Info.plist
│ │ ├── KVC-Prefix.pch
│ │ ├── KVCTableViewCell.h
│ │ ├── KVCTableViewCell.m
│ │ ├── KVCTableViewController.h
│ │ ├── KVCTableViewController.m
│ │ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainStoryboard.storyboard
│ │ └── main.m
└── KVO
│ ├── Default-568h@2x.png
│ ├── KVCTableViewCell.h
│ ├── KVCTableViewCell.m
│ ├── KVCTableViewController.h
│ ├── KVCTableViewController.m
│ ├── KVO.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── KVO
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── KVO-Info.plist
│ ├── KVO-Prefix.pch
│ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainStoryboard.storyboard
│ └── main.m
│ ├── RNTimer.h
│ └── RNTimer.m
├── ch23
├── UIAlertViewWithBlocks
│ ├── Default-568h@2x.png
│ ├── UIAlertViewWithBlocks.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ └── UIAlertViewWithBlocks
│ │ ├── UIAlertView+Blocks.h
│ │ ├── UIAlertView+Blocks.m
│ │ ├── UIAlertViewWithBlocks-Info.plist
│ │ ├── UIAlertViewWithBlocks-Prefix.pch
│ │ ├── UIAlertViewWithBlocksAppDelegate.h
│ │ ├── UIAlertViewWithBlocksAppDelegate.m
│ │ ├── en.lproj
│ │ └── InfoPlist.strings
│ │ ├── iPhone
│ │ └── en.lproj
│ │ │ └── MainWindow.xib
│ │ └── main.m
└── iHotelApp
│ ├── Default-568h@2x.png
│ ├── MKNetworkKit
│ ├── MKNetworkKit-OSX
│ │ ├── MKNetworkKit-OSX.xcodeproj
│ │ │ └── project.pbxproj
│ │ └── MKNetworkKit-OSX
│ │ │ └── MKNetworkKit-OSX-Prefix.pch
│ ├── MKNetworkKit-iOS
│ │ ├── MKNetworkKit-iOS.xcodeproj
│ │ │ └── project.pbxproj
│ │ └── MKNetworkKit-iOS
│ │ │ └── MKNetworkKit-iOS-Prefix.pch
│ ├── MKNetworkKit.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── MKNetworkKit
│ │ ├── Categories
│ │ │ ├── NSAlert+MKNetworkKitAdditions.h
│ │ │ ├── NSAlert+MKNetworkKitAdditions.m
│ │ │ ├── NSData+Base64.h
│ │ │ ├── NSData+Base64.m
│ │ │ ├── NSDate+RFC1123.h
│ │ │ ├── NSDate+RFC1123.m
│ │ │ ├── NSDictionary+RequestEncoding.h
│ │ │ ├── NSDictionary+RequestEncoding.m
│ │ │ ├── NSString+MKNetworkKitAdditions.h
│ │ │ ├── NSString+MKNetworkKitAdditions.m
│ │ │ ├── UIAlertView+MKNetworkKitAdditions.h
│ │ │ └── UIAlertView+MKNetworkKitAdditions.m
│ │ ├── MKNetworkEngine.h
│ │ ├── MKNetworkEngine.m
│ │ ├── MKNetworkKit.h
│ │ ├── MKNetworkOperation.h
│ │ ├── MKNetworkOperation.m
│ │ └── Reachability
│ │ │ ├── Reachability.h
│ │ │ └── Reachability.m
│ ├── Mac-Demo
│ │ └── MKNetworkKit-OSX-Demo
│ │ │ ├── MKNetworkKit-OSX-Demo.xcodeproj
│ │ │ └── project.pbxproj
│ │ │ └── MKNetworkKit-OSX-Demo
│ │ │ ├── AppDelegate.h
│ │ │ ├── AppDelegate.m
│ │ │ ├── MKNetworkKit-OSX-Demo-Info.plist
│ │ │ ├── MKNetworkKit-OSX-Demo-Prefix.pch
│ │ │ ├── en.lproj
│ │ │ ├── Credits.rtf
│ │ │ ├── InfoPlist.strings
│ │ │ └── MainMenu.xib
│ │ │ └── main.m
│ ├── README.mdown
│ ├── SampleImage.jpg
│ ├── ServerTests
│ │ ├── basic_auth.php
│ │ └── digest_auth.php
│ └── iOS-Demo
│ │ ├── MKNetworkKit-iOS-Demo.xcodeproj
│ │ └── project.pbxproj
│ │ ├── MKNetworkKitDemo
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── AuthTestEngine.h
│ │ ├── AuthTestEngine.m
│ │ ├── ExampleDownloader.h
│ │ ├── ExampleDownloader.m
│ │ ├── ExamplePost.h
│ │ ├── ExamplePost.m
│ │ ├── ExampleUploader.h
│ │ ├── ExampleUploader.m
│ │ ├── FlickrCell.h
│ │ ├── FlickrCell.m
│ │ ├── FlickrEngine.h
│ │ ├── FlickrEngine.m
│ │ ├── FlickrTableViewController.h
│ │ ├── FlickrTableViewController.m
│ │ ├── MKNetworkKit-iOS-Demo-Info.plist
│ │ ├── MKNetworkKit-iOS-Demo-Prefix.pch
│ │ ├── ViewController.h
│ │ ├── ViewController.m
│ │ ├── YahooEngine.h
│ │ ├── YahooEngine.m
│ │ ├── en.lproj
│ │ │ ├── InfoPlist.strings
│ │ │ └── MainStoryboard.storyboard
│ │ └── main.m
│ │ └── client.p12
│ ├── iHotelApp.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── iHotelApp
│ ├── Errors_en_US.plist
│ ├── JSONModel.h
│ ├── JSONModel.m
│ ├── MenuItem.h
│ ├── MenuItem.m
│ ├── RESTEngine
│ ├── RESTfulEngine.h
│ └── RESTfulEngine.m
│ ├── RESTError.h
│ ├── RESTError.m
│ ├── RESTfulOperation.h
│ ├── RESTfulOperation.m
│ ├── Review.h
│ ├── Review.m
│ ├── en.lproj
│ ├── InfoPlist.strings
│ ├── MainWindow.xib
│ └── iHotelAppViewController.xib
│ ├── iHotelApp-Info.plist
│ ├── iHotelApp-Prefix.pch
│ ├── iHotelAppAppDelegate.h
│ ├── iHotelAppAppDelegate.m
│ ├── iHotelAppMenuViewController.h
│ ├── iHotelAppMenuViewController.m
│ ├── iHotelAppMenuViewController.xib
│ ├── iHotelAppViewController.h
│ ├── iHotelAppViewController.m
│ └── main.m
├── ch24
└── iHotelApp
│ ├── Default-568h@2x.png
│ ├── MKNetworkKit
│ ├── iHotelApp.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── iHotelApp
│ ├── AppCache.h
│ ├── AppCache.m
│ ├── Errors_en_US.plist
│ ├── JSONModel.h
│ ├── JSONModel.m
│ ├── MenuItem.h
│ ├── MenuItem.m
│ ├── RESTEngine
│ ├── RESTfulEngine.h
│ └── RESTfulEngine.m
│ ├── RESTError.h
│ ├── RESTError.m
│ ├── RESTfulOperation.h
│ ├── RESTfulOperation.m
│ ├── Review.h
│ ├── Review.m
│ ├── en.lproj
│ ├── InfoPlist.strings
│ ├── MainWindow.xib
│ └── iHotelAppViewController.xib
│ ├── iHotelApp-Info.plist
│ ├── iHotelApp-Prefix.pch
│ ├── iHotelAppAppDelegate.h
│ ├── iHotelAppAppDelegate.m
│ ├── iHotelAppMenuViewController.h
│ ├── iHotelAppMenuViewController.m
│ ├── iHotelAppMenuViewController.xib
│ ├── iHotelAppViewController.h
│ ├── iHotelAppViewController.m
│ └── main.m
├── ch26
├── AutoReturn
│ ├── AutoReturn.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ ├── AutoReturn
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── AutoReturn-Info.plist
│ │ ├── AutoReturn-Prefix.pch
│ │ ├── ViewController.h
│ │ ├── ViewController.m
│ │ ├── en.lproj
│ │ │ ├── InfoPlist.strings
│ │ │ └── MainStoryboard.storyboard
│ │ └── main.m
│ └── Default-568h@2x.png
├── CurvyText
│ ├── CurvyText.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ └── CurvyText
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── CurvyText-Info.plist
│ │ ├── CurvyText-Prefix.pch
│ │ ├── CurvyTextView.h
│ │ ├── CurvyTextView.m
│ │ ├── ViewController.h
│ │ ├── ViewController.m
│ │ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainStoryboard.storyboard
│ │ └── main.m
├── RichText
│ ├── RichText.xcodeproj
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ └── RichText
│ │ ├── AppDelegate.h
│ │ ├── AppDelegate.m
│ │ ├── RichText-Info.plist
│ │ ├── RichText-Prefix.pch
│ │ ├── ViewController.h
│ │ ├── ViewController.m
│ │ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── MainStoryboard.storyboard
│ │ └── main.m
└── SimpleLayout
│ ├── CoreTextLabel.h
│ ├── CoreTextLabel.m
│ ├── Default-568h@2x.png
│ ├── SimpleLayout.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── SimpleLayout
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── SimpleLayout-Info.plist
│ ├── SimpleLayout-Prefix.pch
│ ├── ViewController.h
│ ├── ViewController.m
│ ├── en.lproj
│ ├── InfoPlist.strings
│ └── MainStoryboard.storyboard
│ └── main.m
├── ch27
└── CoreFoundation
│ ├── CoreFoundation.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ ├── CoreFoundation
│ ├── CoreFoundation-Info.plist
│ ├── CoreFoundation-Prefix.pch
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ └── main.m
│ ├── Default-568h@2x.png
│ ├── MYStringConversion.c
│ └── MYStringConversion.h
└── ch28
├── ISASwizzle
├── Default-568h@2x.png
├── ISASwizzle.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
├── ISASwizzle
│ ├── ISASwizzle-Info.plist
│ ├── ISASwizzle-Prefix.pch
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ └── main.m
├── MYNotificationCenter.h
├── MYNotificationCenter.m
├── NSObject+SetClass.h
└── NSObject+SetClass.m
├── MethodSwizzle
├── Default-568h@2x.png
├── MethodSwizzle.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
├── MethodSwizzle
│ ├── MethodSwizzle-Info.plist
│ ├── MethodSwizzle-Prefix.pch
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ └── main.m
├── NSNotificationCenter+RNSwizzle.h
├── NSNotificationCenter+RNSwizzle.m
├── RNSwizzle.h
└── RNSwizzle.m
├── Person
├── Default-568h@2x.png
├── Person.xcodeproj
│ ├── project.pbxproj
│ └── project.xcworkspace
│ │ └── contents.xcworkspacedata
└── Person
│ ├── CacheProxy.h
│ ├── CacheProxy.m
│ ├── Person-Info.plist
│ ├── Person-Prefix.pch
│ ├── Person.h
│ ├── Person.m
│ ├── en.lproj
│ └── InfoPlist.strings
│ └── main.m
└── Runtime
├── Default-568h@2x.png
├── MyMsgSend.c
├── MyMsgSend.h
├── Runtime.xcodeproj
├── project.pbxproj
└── project.xcworkspace
│ └── contents.xcworkspacedata
└── Runtime
├── FastCall.h
├── FastCall.m
├── PrintObjectMethods.h
├── PrintObjectMethods.m
├── Runtime-Info.plist
├── Runtime-Prefix.pch
├── en.lproj
└── InfoPlist.strings
└── main.m
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | project.xcworkspace
3 |
--------------------------------------------------------------------------------
/ch03/AssocRef/AssocRef.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch03/AssocRef/AssocRef/AssocRef-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'AssocRef' target in the 'AssocRef' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch03/AssocRef/AssocRef/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch03/AssocRef/AssocRef/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // AssocRef
4 | //
5 | // Created by Rob Napier on 9/14/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch03/AssocRef/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch03/AssocRef/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch04/ObserverTrampoline/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch04/ObserverTrampoline/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch04/ObserverTrampoline/ObserverTrampoline.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch04/ObserverTrampoline/ObserverTrampoline/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // ObserverTrampoline
4 | //
5 | // Created by Rob Napier on 9/7/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch04/ObserverTrampoline/ObserverTrampoline/ObserverTrampoline-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'ObserverTrampoline' target in the 'ObserverTrampoline' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch04/ObserverTrampoline/ObserverTrampoline/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // ObserverTrampoline
4 | //
5 | // Created by Rob Napier on 9/7/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class RNObserverManager;
12 | @interface ViewController : UIViewController
13 | @property (nonatomic, strong) id observerManager;
14 | @end
15 |
--------------------------------------------------------------------------------
/ch04/ObserverTrampoline/ObserverTrampoline/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch04/ObserverTrampoline/ObserverTrampoline/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // ObserverTrampoline
4 | //
5 | // Created by Rob Napier on 9/7/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch06/NonRepeatingCellsExample/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch06/NonRepeatingCellsExample/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch06/NonRepeatingCellsExample/NonRepeatingCellsExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch06/NonRepeatingCellsExample/NonRepeatingCellsExample/BodyCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // BodyCell.h
3 | // NonRepeatingCellsExample
4 | //
5 | // Created by Mugunth Kumar M on 26/8/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface BodyCell : UITableViewCell
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch06/NonRepeatingCellsExample/NonRepeatingCellsExample/BodyCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // BodyCell.m
3 | // NonRepeatingCellsExample
4 | //
5 | // Created by Mugunth Kumar M on 26/8/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import "BodyCell.h"
10 |
11 | @implementation BodyCell
12 |
13 | - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
14 | {
15 | self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
16 | if (self) {
17 | // Initialization code
18 | }
19 | return self;
20 | }
21 |
22 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated
23 | {
24 | [super setSelected:selected animated:animated];
25 |
26 | // Configure the view for the selected state
27 | }
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/ch06/NonRepeatingCellsExample/NonRepeatingCellsExample/FooterCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // FooterCell.h
3 | // NonRepeatingCellsExample
4 | //
5 | // Created by Mugunth Kumar M on 26/8/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface FooterCell : UITableViewCell
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch06/NonRepeatingCellsExample/NonRepeatingCellsExample/HeaderCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // HeaderCell.h
3 | // NonRepeatingCellsExample
4 | //
5 | // Created by Mugunth Kumar M on 26/8/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface HeaderCell : UITableViewCell
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch06/NonRepeatingCellsExample/NonRepeatingCellsExample/NonRepeatingCellsExample-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'NonRepeatingCellsExample' target in the 'NonRepeatingCellsExample' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_3_0
8 | #warning "This project uses features only available in iPhone SDK 3.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch06/NonRepeatingCellsExample/NonRepeatingCellsExample/NonRepeatingCellsExampleAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // NonRepeatingCellsExampleAppDelegate.h
3 | // NonRepeatingCellsExample
4 | //
5 | // Created by Mugunth Kumar M on 23/8/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class NonRepeatingCellsExampleViewController;
12 |
13 | @interface NonRepeatingCellsExampleAppDelegate : NSObject
14 |
15 | @property (nonatomic, strong) IBOutlet UIWindow *window;
16 |
17 | @property (nonatomic, strong) IBOutlet NonRepeatingCellsExampleViewController *viewController;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/ch06/NonRepeatingCellsExample/NonRepeatingCellsExample/NonRepeatingCellsExampleViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // NonRepeatingCellsExampleViewController.h
3 | // NonRepeatingCellsExample
4 | //
5 | // Created by Mugunth Kumar M on 23/8/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "HeaderCell.h"
11 | #import "BodyCell.h"
12 | #import "FooterCell.h"
13 |
14 | @interface NonRepeatingCellsExampleViewController : UIViewController
15 |
16 | @property (nonatomic, strong) IBOutlet UITableView *mainTable;
17 | @property (nonatomic, strong) IBOutlet HeaderCell *headerCell;
18 | @property (nonatomic, strong) IBOutlet BodyCell *bodyCell;
19 | @property (nonatomic, strong) IBOutlet FooterCell *footerCell;
20 | @end
21 |
--------------------------------------------------------------------------------
/ch06/NonRepeatingCellsExample/NonRepeatingCellsExample/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch06/NonRepeatingCellsExample/NonRepeatingCellsExample/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // NonRepeatingCellsExample
4 | //
5 | // Created by Mugunth Kumar M on 23/8/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, char *argv[])
12 | {
13 | @autoreleasepool {
14 | int retVal = UIApplicationMain(argc, argv, nil, nil);
15 | return retVal;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/ch06/TableViewPerformance/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch06/TableViewPerformance/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch06/TableViewPerformance/TableViewPerformance.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch06/TableViewPerformance/TableViewPerformance/CustomCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // CustomCell.h
3 | // TableViewPerformance
4 | //
5 | // Created by Mugunth Kumar M on 23/8/11.
6 | //
7 |
8 | #import
9 |
10 | @interface CustomCell : UITableViewCell
11 |
12 | @property (nonatomic, strong) IBOutlet UILabel *titleLabel;
13 | @property (nonatomic, strong) IBOutlet UILabel *subTitleLabel;
14 | @property (nonatomic, strong) IBOutlet UILabel *timeTitleLabel;
15 | @property (nonatomic, strong) IBOutlet UIImageView *thumbnailImage;
16 | @end
17 |
--------------------------------------------------------------------------------
/ch06/TableViewPerformance/TableViewPerformance/CustomDrawnCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // CustomDrawnCell.h
3 | // TableViewPerformance
4 | //
5 | // Created by Mugunth Kumar M on 25/8/11.
6 | //
7 |
8 | #import
9 | #import "ABTableViewCell.h"
10 |
11 | @interface CustomDrawnCell : ABTableViewCell {
12 |
13 | NSString *_title;
14 | NSString *_subTitle;
15 | NSString *_timeTitle;
16 | UIImage *_thumbnail;
17 | }
18 |
19 | - (void)setTitle:(NSString*) title subTitle:(NSString*) subTitle time:(NSString*) time thumbnail:(UIImage *)aThumbnail;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/ch06/TableViewPerformance/TableViewPerformance/TableViewPerformance-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'TableViewPerformance' target in the 'TableViewPerformance' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iPhone SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch06/TableViewPerformance/TableViewPerformance/TableViewPerformanceAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // TableViewPerformanceAppDelegate.h
3 | // TableViewPerformance
4 | //
5 | // Created by Mugunth Kumar M on 23/8/11.
6 | //
7 |
8 | #import
9 |
10 | @class TableViewPerformanceViewController;
11 |
12 | @interface TableViewPerformanceAppDelegate : NSObject
13 |
14 | @property (nonatomic, strong) IBOutlet UIWindow *window;
15 |
16 | @property (nonatomic, strong) IBOutlet TableViewPerformanceViewController *viewController;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/ch06/TableViewPerformance/TableViewPerformance/TableViewPerformanceViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // TableViewPerformanceViewController.h
3 | // TableViewPerformance
4 | //
5 | // Created by Mugunth Kumar M on 23/8/11.
6 | //
7 |
8 | #import
9 |
10 | @interface TableViewPerformanceViewController : UIViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/ch06/TableViewPerformance/TableViewPerformance/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch06/TableViewPerformance/TableViewPerformance/iOS6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch06/TableViewPerformance/TableViewPerformance/iOS6.png
--------------------------------------------------------------------------------
/ch06/TableViewPerformance/TableViewPerformance/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // TableViewPerformance
4 | //
5 | // Created by Mugunth Kumar M on 23/8/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, char *argv[])
12 | {
13 | @autoreleasepool {
14 | int retVal = UIApplicationMain(argc, argv, nil, nil);
15 | return retVal;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/ch07/AutoLayoutDemo/AutoLayoutDemo/AutoLayoutDemo-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'AutoLayoutDemo' target in the 'AutoLayoutDemo' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch07/AutoLayoutDemo/AutoLayoutDemo/MKAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKAppDelegate.h
3 | // AutoLayoutDemo
4 | //
5 | // Created by Mugunth on 5/9/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MKAppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch07/AutoLayoutDemo/AutoLayoutDemo/MKViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKViewController.h
3 | // AutoLayoutDemo
4 | //
5 | // Created by Mugunth on 5/9/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MKViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch07/AutoLayoutDemo/AutoLayoutDemo/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch07/AutoLayoutDemo/AutoLayoutDemo/ios6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/AutoLayoutDemo/AutoLayoutDemo/ios6.png
--------------------------------------------------------------------------------
/ch07/AutoLayoutDemo/AutoLayoutDemo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // AutoLayoutDemo
4 | //
5 | // Created by Mugunth on 5/9/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "MKAppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([MKAppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/CollectionViewDemo/CollectionViewDemo-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'CollectionViewTest' target in the 'CollectionViewTest' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/CollectionViewDemo/MKAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKAppDelegate.h
3 | // CollectionViewTest
4 | //
5 | // Created by Mugunth on 4/9/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MKAppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/CollectionViewDemo/MKDetailsViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKDetailsViewController.h
3 | // CollectionViewTest
4 | //
5 | // Created by Mugunth on 4/9/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MKDetailsViewController : UIViewController
12 | @property (strong, nonatomic) NSString *photoPath;
13 | @end
14 |
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/CollectionViewDemo/MKPhotoCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKFlagsCell.h
3 | // CollectionViewTest
4 | //
5 | // Created by Mugunth on 4/9/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MKPhotoCell : UICollectionViewCell
12 | @property (strong, nonatomic) IBOutlet UIImageView *photoView;
13 | @property (strong, nonatomic) IBOutlet UILabel *nameLabel;
14 | @end
15 |
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/CollectionViewDemo/MKPhotoCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKFlagsCell.m
3 | // CollectionViewTest
4 | //
5 | // Created by Mugunth on 4/9/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training. All rights reserved.
7 | //
8 |
9 | #import "MKPhotoCell.h"
10 | #import
11 |
12 | @implementation MKPhotoCell
13 |
14 | -(void) awakeFromNib {
15 |
16 | self.selectedBackgroundView = [[UIView alloc] initWithFrame:self.frame];
17 | self.selectedBackgroundView.backgroundColor = [UIColor colorWithWhite:0.3 alpha:0.5];
18 |
19 | self.photoView.layer.borderColor = [[UIColor whiteColor] CGColor];
20 | self.photoView.layer.borderWidth = 5.0f;
21 |
22 | [super awakeFromNib];
23 | }
24 | @end
25 |
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/CollectionViewDemo/MKViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKViewController.h
3 | // CollectionViewTest
4 | //
5 | // Created by Mugunth on 4/9/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MKViewController : UICollectionViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/CollectionViewDemo/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/CollectionViewDemo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // CollectionViewTest
4 | //
5 | // Created by Mugunth on 4/9/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "MKAppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([MKAppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00003.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00003.jpg
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00023.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00023.jpg
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00231.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00231.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00452.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00452.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00592.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00592.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00597.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00597.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00598.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00598.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00601.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00601.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00602.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00602.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00603.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00603.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00606.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00606.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00609.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00609.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00610.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00610.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00615.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00615.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00616.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00616.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00617.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00617.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00620.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00620.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00699.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00699.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00705.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00705.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00712.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00712.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00736.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00736.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00738.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00738.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00777.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00777.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00844.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00844.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00851.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00851.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/DSC00863.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/DSC00863.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_0005.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_0005.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_0009.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_0009.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_0010.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_0010.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_0021.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_0021.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_0023.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_0023.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_0149.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_0149.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_0151.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_0151.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_0166.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_0166.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_0180.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_0180.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_0184.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_0184.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_0193.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_0193.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_0206.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_0206.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_0345.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_0345.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_0360.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_0360.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_0362.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_0362.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_0371.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_0371.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_0376.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_0376.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_0397.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_0397.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_3064.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_3064.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_3171.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_3171.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_3235.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_3235.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_3252.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_3252.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_3256.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_3256.JPG
--------------------------------------------------------------------------------
/ch07/CollectionViewDemo/Photos/IMG_3275.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch07/CollectionViewDemo/Photos/IMG_3275.JPG
--------------------------------------------------------------------------------
/ch08/BlurryText/BlurryText.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch08/BlurryText/BlurryText/BlurryText-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'BlurryText' target in the 'BlurryText' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch08/BlurryText/BlurryText/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch08/BlurryText/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch08/BlurryText/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch08/Drawing/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch08/Drawing/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch08/Drawing/Drawing.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch08/Drawing/Drawing/Drawing-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'Drawing' target in the 'Drawing' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch08/Drawing/Drawing/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch08/Graph/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch08/Graph/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch08/Graph/Graph.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch08/Graph/Graph/Graph-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'Graph' target in the 'Graph' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch08/Graph/Graph/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch08/Layer/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch08/Layer/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch08/Layer/Layer.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch08/Layer/Layer/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Layer
4 | //
5 | // Created by Rob Napier on 9/18/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch08/Layer/Layer/Layer-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'Layer' target in the 'Layer' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch08/Layer/Layer/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // Layer
4 | //
5 | // Created by Rob Napier on 9/18/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch08/Layer/Layer/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch08/Layer/Layer/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Layer
4 | //
5 | // Created by Rob Napier on 9/18/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch08/Paths/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch08/Paths/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch08/Paths/Paths.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch08/Paths/Paths/Paths-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'Paths' target in the 'Paths' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch08/Paths/Paths/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch08/TimeConsuming/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch08/TimeConsuming/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch08/TimeConsuming/TimeConsuming.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch08/TimeConsuming/TimeConsuming/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // TimeConsuming
4 | //
5 | // Created by Rob Napier on 6/27/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch08/TimeConsuming/TimeConsuming/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // TimeConsumingAppDelegate.m
3 | // TimeConsuming
4 | //
5 | // Created by Rob Napier on 6/27/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 |
11 | @implementation AppDelegate
12 |
13 | @synthesize window = _window;
14 |
15 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
16 | {
17 | // Override point for customization after application launch.
18 | [self.window makeKeyAndVisible];
19 | return YES;
20 | }
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/ch08/TimeConsuming/TimeConsuming/TimeConsuming-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'TimeConsuming' target in the 'TimeConsuming' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch08/TimeConsuming/TimeConsuming/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch08/TimeConsuming/TimeConsuming/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // TimeConsuming
4 | //
5 | // Created by Rob Napier on 9/17/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch08/Transforms/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch08/Transforms/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch08/Transforms/Transforms.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch08/Transforms/Transforms/Transforms-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'Transforms' target in the 'Transforms' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch08/Transforms/Transforms/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch09/Actions/Actions.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch09/Actions/Actions/Actions-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'Actions' target in the 'Actions' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch09/Actions/Actions/ActionsAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // ActionsAppDelegate.h
3 | // Actions
4 | //
5 | // Created by Rob Napier on 7/17/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ActionsAppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch09/Actions/Actions/ActionsViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ActionsViewController.h
3 | // Actions
4 | //
5 | // Created by Rob Napier on 7/17/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ActionsViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch09/Actions/Actions/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch09/Actions/Actions/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Actions
4 | //
5 | // Created by Rob Napier on 7/17/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "ActionsAppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([ActionsAppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch09/Actions/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch09/Actions/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch09/Box/Box.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch09/Box/Box/Box-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'Box' target in the 'Box' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch09/Box/Box/BoxAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // BoxAppDelegate.h
3 | // Box
4 | //
5 | // Created by Rob Napier on 7/19/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface BoxAppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch09/Box/Box/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch09/Box/Box/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Box
4 | //
5 | // Created by Rob Napier on 7/19/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "BoxAppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([BoxAppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch09/Box/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch09/Box/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch09/BoxTransform/BoxTransform.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch09/BoxTransform/BoxTransform/BoxTransform-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'BoxTransform' target in the 'BoxTransform' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch09/BoxTransform/BoxTransform/BoxTransformAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // BoxTransformAppDelegate.h
3 | // BoxTransform
4 | //
5 | // Created by Rob Napier on 7/20/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface BoxTransformAppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch09/BoxTransform/BoxTransform/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch09/BoxTransform/BoxTransform/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // BoxTransform
4 | //
5 | // Created by Rob Napier on 7/20/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "BoxTransformAppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([BoxTransformAppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch09/BoxTransform/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch09/BoxTransform/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch09/Decoration/Decoration.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch09/Decoration/Decoration/Decoration-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'Decoration' target in the 'Decoration' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch09/Decoration/Decoration/DecorationAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // DecorationAppDelegate.h
3 | // Decoration
4 | //
5 | // Created by Rob Napier on 7/20/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DecorationAppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch09/Decoration/Decoration/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch09/Decoration/Decoration/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Decoration
4 | //
5 | // Created by Rob Napier on 7/20/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "DecorationAppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([DecorationAppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch09/Decoration/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch09/Decoration/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch09/LayerAnimation/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch09/LayerAnimation/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch09/LayerAnimation/LayerAnimation.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch09/LayerAnimation/LayerAnimation/LayerAnimation-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'LayerAnimation' target in the 'LayerAnimation' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch09/LayerAnimation/LayerAnimation/LayerAnimationAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // LayerAnimationAppDelegate.h
3 | // LayerAnimation
4 | //
5 | // Created by Rob Napier on 7/17/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface LayerAnimationAppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch09/LayerAnimation/LayerAnimation/LayerAnimationViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // LayerAnimationViewController.h
3 | // LayerAnimation
4 | //
5 | // Created by Rob Napier on 7/17/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface LayerAnimationViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch09/LayerAnimation/LayerAnimation/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch09/LayerAnimation/LayerAnimation/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // LayerAnimation
4 | //
5 | // Created by Rob Napier on 7/17/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import "LayerAnimationAppDelegate.h"
10 |
11 | int main(int argc, char *argv[])
12 | {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([LayerAnimationAppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/ch09/Layers/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch09/Layers/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch09/Layers/Layers.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch09/Layers/Layers/Layers-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'Layers' target in the 'Layers' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch09/Layers/Layers/LayersAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // LayersAppDelegate.h
3 | // Layers
4 | //
5 | // Created by Rob Napier on 7/16/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface LayersAppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch09/Layers/Layers/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch09/Layers/Layers/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Layers
4 | //
5 | // Created by Rob Napier on 7/16/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "LayersAppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([LayersAppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch09/Layers/Layers/pushing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch09/Layers/Layers/pushing.png
--------------------------------------------------------------------------------
/ch09/Layers/Layers/pushing.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch09/Layers/Layers/pushing.psd
--------------------------------------------------------------------------------
/ch09/ViewAnimation/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch09/ViewAnimation/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch09/ViewAnimation/ViewAnimation.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch09/ViewAnimation/ViewAnimation/CircleView.h:
--------------------------------------------------------------------------------
1 | //
2 | // CircleView.h
3 | // ViewAnimation
4 | //
5 | // Created by Rob Napier on 7/13/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface CircleView : UIView
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch09/ViewAnimation/ViewAnimation/CircleView.m:
--------------------------------------------------------------------------------
1 | //
2 | // CircleView.m
3 | // ViewAnimation
4 | //
5 |
6 | #import "CircleView.h"
7 |
8 | @implementation CircleView
9 |
10 | - (id)initWithFrame:(CGRect)frame {
11 | self = [super initWithFrame:frame];
12 | if (self) {
13 | self.opaque = NO;
14 | }
15 | return self;
16 | }
17 |
18 | - (void)drawRect:(CGRect)rect {
19 | [[UIColor redColor] setFill];
20 | [[UIBezierPath bezierPathWithOvalInRect:self.bounds] fill];
21 | }
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/ch09/ViewAnimation/ViewAnimation/ViewAnimation-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'ViewAnimation' target in the 'ViewAnimation' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch09/ViewAnimation/ViewAnimation/ViewAnimationAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewAnimationAppDelegate.h
3 | // ViewAnimation
4 | //
5 | // Created by Rob Napier on 7/13/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewAnimationAppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch09/ViewAnimation/ViewAnimation/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch09/ViewAnimation/ViewAnimation/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // ViewAnimation
4 | //
5 | // Created by Rob Napier on 7/13/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "ViewAnimationAppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([ViewAnimationAppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch11/InfiniteScrollingExample/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch11/InfiniteScrollingExample/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch11/InfiniteScrollingExample/iOS6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch11/InfiniteScrollingExample/iOS6.png
--------------------------------------------------------------------------------
/ch11/InfiniteScrollingExample/iOS6InfiniteScrolling/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // iOS6PullToRefresh
4 | //
5 | // Created by Mugunth on 9/7/12.
6 | // Copyright (c) 2012 Mugunth. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch11/InfiniteScrollingExample/iOS6InfiniteScrolling/MasterViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MasterViewController.h
3 | // iOS6PullToRefresh
4 | //
5 | // Created by Mugunth on 9/7/12.
6 | // Copyright (c) 2012 Mugunth. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "PullToRefreshViewController.h"
12 |
13 | @interface MasterViewController : PullToRefreshViewController
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch11/InfiniteScrollingExample/iOS6InfiniteScrolling/RefreshArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch11/InfiniteScrollingExample/iOS6InfiniteScrolling/RefreshArrow.png
--------------------------------------------------------------------------------
/ch11/InfiniteScrollingExample/iOS6InfiniteScrolling/RefreshArrow@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch11/InfiniteScrollingExample/iOS6InfiniteScrolling/RefreshArrow@2x.png
--------------------------------------------------------------------------------
/ch11/InfiniteScrollingExample/iOS6InfiniteScrolling/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch11/InfiniteScrollingExample/iOS6InfiniteScrolling/iOS6InfiniteScrolling-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'iOS6PullToRefresh' target in the 'iOS6PullToRefresh' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch11/InfiniteScrollingExample/iOS6InfiniteScrolling/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // iOS6PullToRefresh
4 | //
5 | // Created by Mugunth on 9/7/12.
6 | // Copyright (c) 2012 Mugunth. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch11/InlineEditingExample/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch11/InlineEditingExample/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch11/InlineEditingExample/InlineEditingExample/InlineEditingExample-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'InlineEditingExample' target in the 'InlineEditingExample' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_3_0
8 | #warning "This project uses features only available in iPhone SDK 3.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch11/InlineEditingExample/InlineEditingExample/InlineEditingExampleAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // InlineEditingExampleAppDelegate.h
3 | // InlineEditingExample
4 | //
5 | // Created by Mugunth Kumar M on 30/8/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class InlineEditingExampleViewController;
12 |
13 | @interface InlineEditingExampleAppDelegate : NSObject
14 |
15 | @property (nonatomic, strong) IBOutlet UIWindow *window;
16 |
17 | @property (nonatomic, strong) IBOutlet InlineEditingExampleViewController *viewController;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/ch11/InlineEditingExample/InlineEditingExample/InlineEditingExampleViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // InlineEditingExampleViewController.h
3 | // InlineEditingExample
4 | //
5 | // Created by Mugunth Kumar M on 30/8/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface InlineEditingExampleViewController : UITableViewController
12 |
13 | @property (nonatomic, strong) NSMutableArray *data;
14 | @end
15 |
--------------------------------------------------------------------------------
/ch11/InlineEditingExample/InlineEditingExample/LabelTextFieldCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // LabelTextFieldCell.h
3 | // InlinteEditingExample
4 | //
5 | // Created by Mugunth Kumar on 20-Jun-10.
6 | // Copyright 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 |
12 | @interface LabelTextFieldCell : UITableViewCell
13 |
14 | @property (nonatomic, strong) IBOutlet UILabel *labelText;
15 | @property (nonatomic, strong) IBOutlet UITextField *inputText;
16 | @property (nonatomic, copy) void (^onTextEntered)(NSString *enteredText);
17 |
18 | -(IBAction)textEditingDidEnd:(id)sender;
19 | @end
20 |
--------------------------------------------------------------------------------
/ch11/InlineEditingExample/InlineEditingExample/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch11/InlineEditingExample/InlineEditingExample/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // InlineEditingExample
4 | //
5 | // Created by Mugunth Kumar M on 30/8/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, char *argv[])
12 | {
13 | @autoreleasepool {
14 | int retVal = UIApplicationMain(argc, argv, nil, nil);
15 | return retVal;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/ch11/MKAccordion/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch11/MKAccordion/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch11/MKAccordion/MKAccordion/MKAccordion-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'MKAccordion' target in the 'MKAccordion' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #import
15 | #endif
16 |
--------------------------------------------------------------------------------
/ch11/MKAccordion/MKAccordion/MKAccordionButton.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKAccordionButton.h
3 | // MKAccordion
4 | //
5 | // Created by Mugunth on 24/7/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training Pte Ltd. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MKAccordionButton : UIView
12 | @property (nonatomic, weak) IBOutlet UIButton *mainButton;
13 | @property (nonatomic, copy) void (^buttonTappedHandler)();
14 | @end
15 |
--------------------------------------------------------------------------------
/ch11/MKAccordion/MKAccordion/MKAccordionButton.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKAccordionButton.m
3 | // MKAccordion
4 | //
5 | // Created by Mugunth on 24/7/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training Pte Ltd. All rights reserved.
7 | //
8 |
9 | #import "MKAccordionButton.h"
10 |
11 | @implementation MKAccordionButton
12 |
13 | -(void) awakeFromNib {
14 |
15 | self.layer.borderColor = [UIColor colorWithWhite:0.6 alpha:0.6].CGColor;
16 | self.layer.borderWidth = 1.0f;
17 | [super awakeFromNib];
18 | }
19 | -(IBAction)buttonTapped:(id)sender {
20 |
21 | if(self.buttonTappedHandler)
22 | self.buttonTappedHandler();
23 | }
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/ch11/MKAccordion/MKAccordion/MKAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKAppDelegate.h
3 | // MKAccordion
4 | //
5 | // Created by Mugunth on 24/7/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training Pte Ltd. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MKAppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch11/MKAccordion/MKAccordion/MKMasterViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKMasterViewController.h
3 | // MKAccordion
4 | //
5 | // Created by Mugunth on 24/7/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training Pte Ltd. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MKMasterViewController : UITableViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch11/MKAccordion/MKAccordion/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch11/MKAccordion/MKAccordion/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // MKAccordion
4 | //
5 | // Created by Mugunth on 24/7/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training Pte Ltd. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "MKAppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([MKAppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch11/MKDrawerDemo/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch11/MKDrawerDemo/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch11/MKDrawerDemo/MKDrawerDemo/MKAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKAppDelegate.h
3 | // MKDrawerDemo
4 | //
5 | // Created by Mugunth on 25/7/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training Pte Ltd. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MKAppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch11/MKDrawerDemo/MKDrawerDemo/MKControlsCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKControlsCell.h
3 | // MKDrawerDemo
4 | //
5 | // Created by Mugunth on 25/7/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training Pte Ltd. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MKControlsCell : UITableViewCell
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch11/MKDrawerDemo/MKDrawerDemo/MKDrawerDemo-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'MKDrawerDemo' target in the 'MKDrawerDemo' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch11/MKDrawerDemo/MKDrawerDemo/MKMasterViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKMasterViewController.h
3 | // MKDrawerDemo
4 | //
5 | // Created by Mugunth on 25/7/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training Pte Ltd. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MKMasterViewController : UITableViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch11/MKDrawerDemo/MKDrawerDemo/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch11/MKDrawerDemo/MKDrawerDemo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // MKDrawerDemo
4 | //
5 | // Created by Mugunth on 25/7/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training Pte Ltd. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "MKAppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([MKAppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch11/PullToRefreshExample/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch11/PullToRefreshExample/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch11/PullToRefreshExample/iOS6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch11/PullToRefreshExample/iOS6.png
--------------------------------------------------------------------------------
/ch11/PullToRefreshExample/iOS6PullToRefresh/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // iOS6PullToRefresh
4 | //
5 | // Created by Mugunth on 9/7/12.
6 | // Copyright (c) 2012 Mugunth. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch11/PullToRefreshExample/iOS6PullToRefresh/MasterViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MasterViewController.h
3 | // iOS6PullToRefresh
4 | //
5 | // Created by Mugunth on 9/7/12.
6 | // Copyright (c) 2012 Mugunth. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "PullToRefreshViewController.h"
12 |
13 | @interface MasterViewController : PullToRefreshViewController
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch11/PullToRefreshExample/iOS6PullToRefresh/RefreshArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch11/PullToRefreshExample/iOS6PullToRefresh/RefreshArrow.png
--------------------------------------------------------------------------------
/ch11/PullToRefreshExample/iOS6PullToRefresh/RefreshArrow@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch11/PullToRefreshExample/iOS6PullToRefresh/RefreshArrow@2x.png
--------------------------------------------------------------------------------
/ch11/PullToRefreshExample/iOS6PullToRefresh/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch11/PullToRefreshExample/iOS6PullToRefresh/iOS6PullToRefresh-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'iOS6PullToRefresh' target in the 'iOS6PullToRefresh' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch11/PullToRefreshExample/iOS6PullToRefresh/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // iOS6PullToRefresh
4 | //
5 | // Created by Mugunth on 9/7/12.
6 | // Copyright (c) 2012 Mugunth. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch13/FavSpots/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch13/FavSpots/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch13/FavSpots/FavSpots.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch13/FavSpots/FavSpots/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch13/FavSpots/FavSpots/DetailViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // DetailViewController.h
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import "Spot.h"
12 |
13 | @interface DetailViewController : UIViewController
14 |
15 | @property (strong, nonatomic) Spot *spot;
16 |
17 | @property (weak, nonatomic) IBOutlet UITextField *nameTextField;
18 | @property (weak, nonatomic) IBOutlet UILabel *locationLabel;
19 | @property (weak, nonatomic) IBOutlet UITextView *noteTextView;
20 | @property (weak, nonatomic) IBOutlet MKMapView *mapView;
21 | @end
22 |
--------------------------------------------------------------------------------
/ch13/FavSpots/FavSpots/FavSpots-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'FavSpots' target in the 'FavSpots' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #import
15 | #endif
16 |
--------------------------------------------------------------------------------
/ch13/FavSpots/FavSpots/FavSpots.xcdatamodeld/.xccurrentversion:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | _XCCurrentVersionName
6 | FavSpots.xcdatamodel
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ch13/FavSpots/FavSpots/MapViewAnnotation.h:
--------------------------------------------------------------------------------
1 | //
2 | // MapViewAnnotation.h
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @class Spot;
13 |
14 | @interface MapViewAnnotation : NSObject
15 | @property (nonatomic, readonly, weak) Spot *spot;
16 | @property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
17 |
18 | - (MapViewAnnotation *)initWithSpot:(Spot *)spot;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/ch13/FavSpots/FavSpots/MapViewAnnotation.m:
--------------------------------------------------------------------------------
1 | //
2 | // MapViewAnnotation.m
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import "MapViewAnnotation.h"
10 | #import "Spot.h"
11 |
12 | @implementation MapViewAnnotation
13 |
14 | //+ (NSSet *)keyPathsForValuesAffectingCoordinate {
15 | // return [NSSet setWithArray:@[ @"spot.latitude", @"spot.longitude" ]];
16 | //}
17 |
18 | - (MapViewAnnotation *)initWithSpot:(Spot *)spot
19 | {
20 | self = [super init];
21 | if (self) {
22 | _spot = spot;
23 | }
24 | return self;
25 | }
26 |
27 | - (CLLocationCoordinate2D)coordinate {
28 | return CLLocationCoordinate2DMake(self.spot.latitude, self.spot.longitude);
29 | }
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/ch13/FavSpots/FavSpots/MapViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MapViewController.h
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MapViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch13/FavSpots/FavSpots/MasterViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MasterViewController.h
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import
12 |
13 | @interface MasterViewController : UITableViewController
14 |
15 | @property (strong, nonatomic) NSFetchedResultsController *fetchedResultsController;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/ch13/FavSpots/FavSpots/ModelController.h:
--------------------------------------------------------------------------------
1 | //
2 | // Model.h
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ModelController : NSObject
12 | @property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
13 |
14 | - (void)saveContext;
15 |
16 | + (ModelController *)sharedController;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/ch13/FavSpots/FavSpots/NSCoder+FavSpots.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSCoder+FavSpots.h
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "NSCoder+RNMapKit.h"
11 |
12 | @class Spot;
13 |
14 | @interface NSCoder (FavSpots)
15 | - (void)RN_encodeSpot:(Spot *)spot forKey:(NSString *)key;
16 | - (Spot *)RN_decodeSpotForKey:(NSString *)key;
17 | @end
18 |
--------------------------------------------------------------------------------
/ch13/FavSpots/FavSpots/NSCoder+RNMapKit.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSCoder+RNMapKit.h
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface NSCoder (RNMapKit)
13 | - (void)RN_encodeMKCoordinateRegion:(MKCoordinateRegion)region
14 | forKey:(NSString *)key;
15 | - (MKCoordinateRegion)RN_decodeMKCoordinateRegionForKey:(NSString *)key;
16 | @end
17 |
--------------------------------------------------------------------------------
/ch13/FavSpots/FavSpots/Spot.h:
--------------------------------------------------------------------------------
1 | //
2 | // Location.h
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import
12 |
13 | @interface Spot : NSManagedObject
14 |
15 | @property (nonatomic) float latitude;
16 | @property (nonatomic) float longitude;
17 | @property (nonatomic, retain) NSString * name;
18 | @property (nonatomic, retain) NSString * notes;
19 |
20 | + (Spot *)insertNewSpotWithCoordinate:(CLLocationCoordinate2D)coordinate inManagedObjectContext:(NSManagedObjectContext *)context;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/ch13/FavSpots/FavSpots/TextEditViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // TextEditViewController.h
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class Spot;
12 |
13 | @interface TextEditViewController : UIViewController
14 | @property (strong, nonatomic) Spot *spot;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/ch13/FavSpots/FavSpots/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch13/FavSpots/FavSpots/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch13/FavSpotsRestore/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch13/FavSpotsRestore/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch13/FavSpotsRestore/FavSpots.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch13/FavSpotsRestore/FavSpots/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch13/FavSpotsRestore/FavSpots/DetailViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // DetailViewController.h
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import "Spot.h"
12 |
13 | @interface DetailViewController : UIViewController
14 |
15 | @property (strong, nonatomic) Spot *spot;
16 |
17 | @property (weak, nonatomic) IBOutlet UITextField *nameTextField;
18 | @property (weak, nonatomic) IBOutlet UILabel *locationLabel;
19 | @property (weak, nonatomic) IBOutlet UITextView *noteTextView;
20 | @property (weak, nonatomic) IBOutlet MKMapView *mapView;
21 | @end
22 |
--------------------------------------------------------------------------------
/ch13/FavSpotsRestore/FavSpots/FavSpots-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'FavSpots' target in the 'FavSpots' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #import
15 | #endif
16 |
--------------------------------------------------------------------------------
/ch13/FavSpotsRestore/FavSpots/FavSpots.xcdatamodeld/.xccurrentversion:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | _XCCurrentVersionName
6 | FavSpots.xcdatamodel
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ch13/FavSpotsRestore/FavSpots/MapViewAnnotation.h:
--------------------------------------------------------------------------------
1 | //
2 | // MapViewAnnotation.h
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @class Spot;
13 |
14 | @interface MapViewAnnotation : NSObject
15 | @property (nonatomic, readonly, weak) Spot *spot;
16 | @property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
17 |
18 | - (MapViewAnnotation *)initWithSpot:(Spot *)spot;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/ch13/FavSpotsRestore/FavSpots/MapViewAnnotation.m:
--------------------------------------------------------------------------------
1 | //
2 | // MapViewAnnotation.m
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import "MapViewAnnotation.h"
10 | #import "Spot.h"
11 |
12 | @implementation MapViewAnnotation
13 |
14 | //+ (NSSet *)keyPathsForValuesAffectingCoordinate {
15 | // return [NSSet setWithArray:@[ @"spot.latitude", @"spot.longitude" ]];
16 | //}
17 |
18 | - (MapViewAnnotation *)initWithSpot:(Spot *)spot
19 | {
20 | self = [super init];
21 | if (self) {
22 | _spot = spot;
23 | }
24 | return self;
25 | }
26 |
27 | - (CLLocationCoordinate2D)coordinate {
28 | return CLLocationCoordinate2DMake(self.spot.latitude, self.spot.longitude);
29 | }
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/ch13/FavSpotsRestore/FavSpots/MapViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MapViewController.h
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MapViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch13/FavSpotsRestore/FavSpots/MasterViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MasterViewController.h
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import
12 |
13 | @interface MasterViewController : UITableViewController
14 |
15 | @property (strong, nonatomic) NSFetchedResultsController *fetchedResultsController;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/ch13/FavSpotsRestore/FavSpots/ModelController.h:
--------------------------------------------------------------------------------
1 | //
2 | // Model.h
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ModelController : NSObject
12 | @property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
13 |
14 | - (void)saveContext;
15 |
16 | + (ModelController *)sharedController;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/ch13/FavSpotsRestore/FavSpots/NSCoder+FavSpots.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSCoder+FavSpots.h
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "NSCoder+RNMapKit.h"
11 |
12 | @class Spot;
13 |
14 | @interface NSCoder (FavSpots)
15 | - (void)RN_encodeSpot:(Spot *)spot forKey:(NSString *)key;
16 | - (Spot *)RN_decodeSpotForKey:(NSString *)key;
17 | @end
18 |
--------------------------------------------------------------------------------
/ch13/FavSpotsRestore/FavSpots/NSCoder+RNMapKit.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSCoder+RNMapKit.h
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface NSCoder (RNMapKit)
13 | - (void)RN_encodeMKCoordinateRegion:(MKCoordinateRegion)region
14 | forKey:(NSString *)key;
15 | - (MKCoordinateRegion)RN_decodeMKCoordinateRegionForKey:(NSString *)key;
16 | @end
17 |
--------------------------------------------------------------------------------
/ch13/FavSpotsRestore/FavSpots/Spot.h:
--------------------------------------------------------------------------------
1 | //
2 | // Location.h
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import
12 |
13 | @interface Spot : NSManagedObject
14 |
15 | @property (nonatomic) float latitude;
16 | @property (nonatomic) float longitude;
17 | @property (nonatomic, retain) NSString * name;
18 | @property (nonatomic, retain) NSString * notes;
19 |
20 | + (Spot *)insertNewSpotWithCoordinate:(CLLocationCoordinate2D)coordinate inManagedObjectContext:(NSManagedObjectContext *)context;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/ch13/FavSpotsRestore/FavSpots/TextEditViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // TextEditViewController.h
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class Spot;
12 |
13 | @interface TextEditViewController : UIViewController
14 | @property (strong, nonatomic) Spot *spot;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/ch13/FavSpotsRestore/FavSpots/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch13/FavSpotsRestore/FavSpots/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // FavSpots
4 | //
5 | // Created by Rob Napier on 8/11/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch13/Julia/CollectionViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // CollectionViewController.h
3 | // Mandel
4 | //
5 | // Created by Rob Napier on 8/6/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface CollectionViewController : UICollectionViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch13/Julia/Julia.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch13/Julia/JuliaCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // MadelCell.h
3 | // Mandel
4 | //
5 | // Created by Rob Napier on 8/6/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface JuliaCell : UICollectionViewCell
12 | - (void)configureWithSeed:(NSUInteger)seed;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/ch13/Julia/Mandel/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Mandel
4 | //
5 | // Created by Rob Napier on 8/6/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch13/Julia/Mandel/Julia-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'Mandel' target in the 'Mandel' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch13/Julia/Mandel/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch13/Julia/Mandel/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Mandel
4 | //
5 | // Created by Rob Napier on 8/6/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch13/JuliaGCD/CollectionViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // CollectionViewController.h
3 | // Mandel
4 | //
5 | // Created by Rob Napier on 8/6/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface CollectionViewController : UICollectionViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch13/JuliaGCD/Julia/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Mandel
4 | //
5 | // Created by Rob Napier on 8/6/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch13/JuliaGCD/Julia/JuliaGCD-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'Mandel' target in the 'Mandel' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch13/JuliaGCD/Julia/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch13/JuliaGCD/Julia/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Mandel
4 | //
5 | // Created by Rob Napier on 8/6/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch13/JuliaGCD/JuliaCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // MadelCell.h
3 | // Mandel
4 | //
5 | // Created by Rob Napier on 8/6/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface JuliaCell : UICollectionViewCell
12 | - (void)configureWithSeed:(NSUInteger)seed; // queue:(NSOperationQueue *)queue;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/ch13/JuliaGCD/JuliaGCD.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch13/JuliaOp/CollectionViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // CollectionViewController.h
3 | // Mandel
4 | //
5 | // Created by Rob Napier on 8/6/12.
6 | //
7 |
8 | #import
9 |
10 | @interface CollectionViewController : UICollectionViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/ch13/JuliaOp/Julia/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Mandel
4 | //
5 | // Created by Rob Napier on 8/6/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch13/JuliaOp/Julia/JuliaOp-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'Mandel' target in the 'Mandel' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch13/JuliaOp/Julia/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch13/JuliaOp/Julia/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Mandel
4 | //
5 | // Created by Rob Napier on 8/6/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch13/JuliaOp/JuliaCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // MadelCell.h
3 | // Mandel
4 | //
5 | // Created by Rob Napier on 8/6/12.
6 | //
7 |
8 | #import
9 |
10 | @interface JuliaCell : UICollectionViewCell
11 | - (void)configureWithSeed:(NSUInteger)seed
12 | queue:(NSOperationQueue *)queue
13 | scales:(NSArray *)scales;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch13/JuliaOp/JuliaOp.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch13/SimpleGCD/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch13/SimpleGCD/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch13/SimpleGCD/SimpleGCD.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch13/SimpleGCD/SimpleGCD/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // SimpleGCD
4 | //
5 | // Created by Rob Napier on 8/15/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch13/SimpleGCD/SimpleGCD/SimpleGCD-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'SimpleGCD' target in the 'SimpleGCD' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch13/SimpleGCD/SimpleGCD/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // SimpleGCD
4 | //
5 | // Created by Rob Napier on 8/15/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch13/SimpleGCD/SimpleGCD/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch13/SimpleGCD/SimpleGCD/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // SimpleGCD
4 | //
5 | // Created by Rob Napier on 8/15/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch13/SimpleOperation/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch13/SimpleOperation/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch13/SimpleOperation/SimpleOperation.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch13/SimpleOperation/SimpleOperation/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // SimpleOperation
4 | //
5 | // Created by Rob Napier on 8/15/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch13/SimpleOperation/SimpleOperation/SimpleOperation-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'SimpleOperation' target in the 'SimpleOperation' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch13/SimpleOperation/SimpleOperation/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // SimpleOperation
4 | //
5 | // Created by Rob Napier on 8/15/11.
6 | //
7 |
8 | #import
9 |
10 | @interface ViewController : UIViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/ch13/SimpleOperation/SimpleOperation/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch13/SimpleOperation/SimpleOperation/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // SimpleOperation
4 | //
5 | // Created by Rob Napier on 8/15/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch14/iHotelApp/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch14/iHotelApp/MKNetworkKit/MKNetworkKit-OSX/MKNetworkKit-OSX/MKNetworkKit-OSX-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'MKNetworkKit-OSX' target in the 'MKNetworkKit-OSX' project
3 | //
4 |
5 | #ifdef __OBJC__
6 | #import
7 | #import "MKNetworkKit.h"
8 | #endif
9 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/MKNetworkKit/MKNetworkKit-iOS/MKNetworkKit-iOS/MKNetworkKit-iOS-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'MKNetworkKit-iOS' target in the 'MKNetworkKit-iOS' project
3 | //
4 |
5 | #ifdef __OBJC__
6 | #import
7 | #import "MKNetworkKit.h"
8 | #endif
9 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/MKNetworkKit/MKNetworkKit.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
12 |
13 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/MKNetworkKit/MKNetworkKit/Categories/NSDate+RFC1123.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDate+RFC1123.h
3 | // MKNetworkKit
4 | //
5 | // Created by Marcus Rohrmoser
6 | // http://blog.mro.name/2009/08/nsdateformatter-http-header/
7 | // http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1
8 |
9 | // No obvious license attached
10 |
11 | @interface NSDate (RFC1123)
12 | /**
13 | Convert a RFC1123 'Full-Date' string
14 | (http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1)
15 | into NSDate.
16 | */
17 | +(NSDate*)dateFromRFC1123:(NSString*)value_;
18 |
19 | /**
20 | Convert NSDate into a RFC1123 'Full-Date' string
21 | (http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1).
22 | */
23 | -(NSString*)rfc1123String;
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/MKNetworkKit/Mac-Demo/MKNetworkKit-OSX-Demo/MKNetworkKit-OSX-Demo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // MKNetworkKit-OSX-Demo
4 | //
5 | // Created by Mugunth Kumar on 7/12/11.
6 | // Copyright (c) 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : NSObject
12 |
13 | @property (assign) IBOutlet NSWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/MKNetworkKit/Mac-Demo/MKNetworkKit-OSX-Demo/MKNetworkKit-OSX-Demo/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // MKNetworkKit-OSX-Demo
4 | //
5 | // Created by Mugunth Kumar on 7/12/11.
6 | // Copyright (c) 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 |
11 | @implementation AppDelegate
12 |
13 | @synthesize window = _window;
14 |
15 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
16 | {
17 | // Insert code here to initialize your application
18 | }
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/MKNetworkKit/Mac-Demo/MKNetworkKit-OSX-Demo/MKNetworkKit-OSX-Demo/MKNetworkKit-OSX-Demo-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'MKNetworkKit-OSX-Demo' target in the 'MKNetworkKit-OSX-Demo' project
3 | //
4 |
5 | #ifdef __OBJC__
6 | #import
7 | #endif
8 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/MKNetworkKit/Mac-Demo/MKNetworkKit-OSX-Demo/MKNetworkKit-OSX-Demo/en.lproj/Credits.rtf:
--------------------------------------------------------------------------------
1 | {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
2 | {\colortbl;\red255\green255\blue255;}
3 | \paperw9840\paperh8400
4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
5 |
6 | \f0\b\fs24 \cf0 Engineering:
7 | \b0 \
8 | Some people\
9 | \
10 |
11 | \b Human Interface Design:
12 | \b0 \
13 | Some other people\
14 | \
15 |
16 | \b Testing:
17 | \b0 \
18 | Hopefully not nobody\
19 | \
20 |
21 | \b Documentation:
22 | \b0 \
23 | Whoever\
24 | \
25 |
26 | \b With special thanks to:
27 | \b0 \
28 | Mom\
29 | }
30 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/MKNetworkKit/Mac-Demo/MKNetworkKit-OSX-Demo/MKNetworkKit-OSX-Demo/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/MKNetworkKit/Mac-Demo/MKNetworkKit-OSX-Demo/MKNetworkKit-OSX-Demo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // MKNetworkKit-OSX-Demo
4 | //
5 | // Created by Mugunth Kumar on 7/12/11.
6 | // Copyright (c) 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, char *argv[])
12 | {
13 | return NSApplicationMain(argc, (const char **)argv);
14 | }
15 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/MKNetworkKit/SampleImage.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch14/iHotelApp/MKNetworkKit/SampleImage.jpg
--------------------------------------------------------------------------------
/ch14/iHotelApp/MKNetworkKit/ServerTests/basic_auth.php:
--------------------------------------------------------------------------------
1 | Hello {$_SERVER['PHP_AUTH_USER']}.
";
11 | echo "You entered {$_SERVER['PHP_AUTH_PW']} as your password.
";
12 | }
13 | else
14 | {
15 | echo "Sorry, invalid crednetials
";
16 | }
17 | }
18 | ?>
--------------------------------------------------------------------------------
/ch14/iHotelApp/MKNetworkKit/iOS-Demo/MKNetworkKitDemo/AuthTestEngine.h:
--------------------------------------------------------------------------------
1 | //
2 | // AuthTestEngine.h
3 | // MKNetworkKit-iOS-Demo
4 | //
5 | // Created by Mugunth Kumar on 4/12/11.
6 | // Copyright (c) 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | @interface AuthTestEngine : MKNetworkEngine
10 |
11 | -(void) basicAuthTest;
12 | -(void) digestAuthTest;
13 | -(void)digestAuthTestWithUser:(NSString*)username password:(NSString*)password;
14 | -(void) clientCertTest;
15 | -(int) cacheMemoryCost;
16 |
17 | -(MKNetworkOperation*) uploadImageFromFile:(NSString*) file
18 | onCompletion:(TwitPicBlock) completionBlock
19 | onError:(MKNKErrorBlock) errorBlock;
20 | @end
21 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/MKNetworkKit/iOS-Demo/MKNetworkKitDemo/ExamplePost.h:
--------------------------------------------------------------------------------
1 | //
2 | // ExamplePost.h
3 | // MKNetworkKitDemo
4 | //
5 | // Created by Mugunth Kumar on 1/12/11.
6 | // Copyright (c) 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | @interface ExamplePost : MKNetworkEngine
10 |
11 | -(MKNetworkOperation*) postDataToServer;
12 | @end
13 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/MKNetworkKit/iOS-Demo/MKNetworkKitDemo/FlickrCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // FlickrCell.h
3 | // MKNetworkKit-iOS-Demo
4 | //
5 | // Created by Mugunth Kumar on 22/1/12.
6 | // Copyright (c) 2012 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface FlickrCell : UITableViewCell
12 |
13 | @property (nonatomic, assign) IBOutlet UIImageView *thumbnailImage;
14 | @property (nonatomic, assign) IBOutlet UILabel *titleLabel;
15 | @property (nonatomic, assign) IBOutlet UILabel *authorNameLabel;
16 |
17 | @property (nonatomic, strong) NSString* loadingImageURLString;
18 | @property (nonatomic, strong) MKNetworkOperation* imageLoadingOperation;
19 | -(void) setFlickrData:(NSDictionary*) thisFlickrImage;
20 | @end
21 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/MKNetworkKit/iOS-Demo/MKNetworkKitDemo/FlickrTableViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // FlickrTableViewController.h
3 | // MKNetworkKit-iOS-Demo
4 | //
5 | // Created by Mugunth Kumar on 22/1/12.
6 | // Copyright (c) 2012 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface FlickrTableViewController : UITableViewController
12 |
13 | @property (strong, nonatomic) NSMutableArray *flickrImages;
14 | @end
15 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/MKNetworkKit/iOS-Demo/MKNetworkKitDemo/MKNetworkKit-iOS-Demo-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'MKNetworkKit' target in the 'MKNetworkKit' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #import "../../MKNetworkKit/MKNetworkKit.h"
15 | #import "AppDelegate.h"
16 | #endif
17 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/MKNetworkKit/iOS-Demo/MKNetworkKitDemo/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/MKNetworkKit/iOS-Demo/MKNetworkKitDemo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // MKNetworkKit
4 | //
5 | // Created by Mugunth Kumar on 7/11/11.
6 | // Copyright (c) 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/MKNetworkKit/iOS-Demo/client.p12:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch14/iHotelApp/MKNetworkKit/iOS-Demo/client.p12
--------------------------------------------------------------------------------
/ch14/iHotelApp/iHotelApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/iHotelApp/JSONModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // ModelBase.h
3 | // Steinlogic
4 | //
5 | // Created by Mugunth Kumar on 26-Jul-10.
6 | // Copyright 2011 Steinlogic All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface JSONModel : NSObject {
12 |
13 | }
14 |
15 | -(id) initWithDictionary:(NSMutableDictionary*) jsonObject;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/iHotelApp/RESTError.h:
--------------------------------------------------------------------------------
1 | //
2 | // RESTError.h
3 | // iHotelApp
4 | //
5 | // Created by Mugunth Kumar on 1-Jan-11.
6 | // Copyright 2010 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 | #define kRequestErrorDomain @"HTTP_ERROR"
11 | #define kBusinessErrorDomain @"BIZ_ERROR" // rename this appropriately
12 |
13 | @interface RESTError : NSError
14 |
15 | @property (nonatomic, strong) NSString *message;
16 | @property (nonatomic, strong) NSString *errorCode;
17 |
18 | - (NSString*) localizedOption;
19 | -(id) initWithDictionary:(NSMutableDictionary*) jsonObject;
20 | @end
21 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/iHotelApp/RESTfulOperation.h:
--------------------------------------------------------------------------------
1 | //
2 | // RESTfulOperation.h
3 | // iHotelApp
4 | //
5 | // Created by Mugunth on 28/05/11.
6 | // Copyright 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "RESTError.h"
12 |
13 | @interface RESTfulOperation : MKNetworkOperation
14 |
15 | @property (nonatomic, strong) RESTError *restError;
16 | @end
17 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/iHotelApp/Review.h:
--------------------------------------------------------------------------------
1 | //
2 | // Review.h
3 | //
4 | //
5 | // Created by Mugunth Kumar on 28/05/11.
6 | // Copyright 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "JSONModel.h"
11 |
12 | @interface Review : JSONModel
13 |
14 | @property (nonatomic, strong) NSString *rating;
15 | @property (nonatomic, strong) NSString *reviewDate;
16 | @property (nonatomic, strong) NSString *reviewerName;
17 | @property (nonatomic, strong) NSString *reviewId;
18 | @property (nonatomic, strong) NSString *reviewText;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/iHotelApp/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/iHotelApp/iHotelApp-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'iHotelApp' target in the 'iHotelApp' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_3_0
8 | #warning "This project uses features only available in iPhone SDK 3.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #import "MKNetworkKit.h"
15 | #endif
16 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/iHotelApp/iHotelAppAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // iHotelAppAppDelegate.h
3 | // iHotelApp
4 | //
5 | // Created by Mugunth on 25/05/11.
6 | // Copyright 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "RESTfulEngine.h"
11 | #define AppDelegate ((iHotelAppAppDelegate *)[UIApplication sharedApplication].delegate)
12 |
13 | @class iHotelAppViewController;
14 |
15 | @interface iHotelAppAppDelegate : NSObject
16 |
17 | @property (nonatomic, strong) IBOutlet UIWindow *window;
18 |
19 | @property (nonatomic, strong) IBOutlet UINavigationController *navController;
20 |
21 | @property (nonatomic, strong) RESTfulEngine *engine;
22 | @end
23 |
24 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/iHotelApp/iHotelAppMenuViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // iHotelAppMenuViewController.h
3 | // iHotelApp
4 | //
5 | // Created by Mugunth on 28/6/12.
6 | // Copyright (c) 2012 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface iHotelAppMenuViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/iHotelApp/iHotelAppViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // iHotelAppViewController.h
3 | // iHotelApp
4 | //
5 | // Created by Mugunth on 25/05/11.
6 | // Copyright 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "RESTfulEngine.h"
11 |
12 | @interface iHotelAppViewController : UIViewController
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/ch14/iHotelApp/iHotelApp/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // iHotelApp
4 | //
5 | // Created by Mugunth on 25/05/11.
6 | // Copyright 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, char *argv[])
12 | {
13 | @autoreleasepool {
14 | int retVal = UIApplicationMain(argc, argv, nil, nil);
15 | return retVal;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/ch15/Connection/Connection.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch15/Connection/Connection/Connection-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'Connection' target in the 'Connection' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch15/Connection/Connection/ConnectionAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // ConnectionAppDelegate.h
3 | // Connection
4 | //
5 | // Created by Rob Napier on 8/1/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ConnectionAppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch15/Connection/Connection/My Example Server.cer:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch15/Connection/Connection/My Example Server.cer
--------------------------------------------------------------------------------
/ch15/Connection/Connection/My Server.cer:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch15/Connection/Connection/My Server.cer
--------------------------------------------------------------------------------
/ch15/Connection/Connection/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch15/Connection/Connection/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Connection
4 | //
5 | // Created by Rob Napier on 8/1/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "ConnectionAppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([ConnectionAppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch15/Connection/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch15/Connection/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch15/CryptPic/CryptPic.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch15/CryptPic/CryptPic/CPAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // CPAppDelegate.h
3 | // CryptPic
4 | //
5 |
6 | #import
7 |
8 | @interface CPAppDelegate : UIResponder
9 |
10 | @property (strong, nonatomic) UIWindow *window;
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/ch15/CryptPic/CryptPic/CPAppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // CPAppDelegate.m
3 | // CryptPic
4 | //
5 |
6 | #import "CPAppDelegate.h"
7 |
8 | @implementation CPAppDelegate
9 |
10 | @end
11 |
--------------------------------------------------------------------------------
/ch15/CryptPic/CryptPic/CPDecryptViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // CPSecondViewController.h
3 | // CryptPic
4 | //
5 |
6 | #import
7 | #import "CPPasswordViewController.h"
8 |
9 | @interface CPDecryptViewController : UIViewController
10 |
11 | @property (strong, nonatomic) IBOutlet UIImageView *imageView;
12 | @property (strong, nonatomic) NSString *password;
13 | @property (strong, nonatomic) IBOutlet UIButton *decryptButton;
14 |
15 | - (IBAction)decrypt:(id)sender;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/ch15/CryptPic/CryptPic/CPEncyptViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // CPFirstViewController.h
3 | // CryptPic
4 | //
5 |
6 | #import
7 | #import "CPPasswordViewController.h"
8 |
9 | @interface CPEncyptViewController : UIViewController ;
10 |
11 | @property (strong, nonatomic) IBOutlet UIImageView *imageView;
12 | @property (strong, nonatomic) NSString *password;
13 | @property (strong, nonatomic) IBOutlet UISegmentedControl *modeSegmentedControl;
14 | @property (strong, nonatomic) IBOutlet UIButton *encryptButton;
15 |
16 | - (IBAction)selectPicture:(id)sender;
17 | - (IBAction)encrypt:(id)sender;
18 | - (IBAction)changeMode:(id)sender;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/ch15/CryptPic/CryptPic/CPPasswordViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // CPPasswordViewController.h
3 | // CryptPic
4 | //
5 |
6 | #import
7 |
8 | @class CPPasswordViewController;
9 |
10 | @protocol CPPasswordViewControllerDelegate
11 | - (void)passwordViewController:(CPPasswordViewController *)vc didFinishWithPassword:(NSString *)password;
12 | @end
13 |
14 | @interface CPPasswordViewController : UIViewController
15 |
16 | @property (strong, nonatomic) IBOutlet UITextField *passwordTextField;
17 | @property (copy, nonatomic) NSString *password;
18 | @property (weak, nonatomic) id delegate;
19 | @end
20 |
--------------------------------------------------------------------------------
/ch15/CryptPic/CryptPic/CryptPic-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'CryptPic' target in the 'CryptPic' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch15/CryptPic/CryptPic/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch15/CryptPic/CryptPic/first.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch15/CryptPic/CryptPic/first.png
--------------------------------------------------------------------------------
/ch15/CryptPic/CryptPic/first@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch15/CryptPic/CryptPic/first@2x.png
--------------------------------------------------------------------------------
/ch15/CryptPic/CryptPic/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // CryptPic
4 | //
5 | // Created by Rob Napier on 8/9/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "CPAppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([CPAppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch15/CryptPic/CryptPic/second.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch15/CryptPic/CryptPic/second.png
--------------------------------------------------------------------------------
/ch15/CryptPic/CryptPic/second@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch15/CryptPic/CryptPic/second@2x.png
--------------------------------------------------------------------------------
/ch15/CryptPic/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch15/CryptPic/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch15/FileExplorer/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch15/FileExplorer/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch15/FileExplorer/FileExplorer.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch15/FileExplorer/FileExplorer/DirectoryViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // DirectoryViewController.h
3 | // FileExplorer
4 | //
5 | // Created by Rob Napier on 7/30/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DirectoryViewController : UITableViewController
12 |
13 | @property (nonatomic, readwrite, strong) NSString *path;
14 | @property (nonatomic, readwrite, strong) NSArray *contents;
15 | @end
16 |
--------------------------------------------------------------------------------
/ch15/FileExplorer/FileExplorer/FileExplorer-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'FileExplorer' target in the 'FileExplorer' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch15/FileExplorer/FileExplorer/FileExplorerAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // FileExplorerAppDelegate.h
3 | // FileExplorer
4 | //
5 | // Created by Rob Napier on 7/30/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface FileExplorerAppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch15/FileExplorer/FileExplorer/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch15/FileExplorer/FileExplorer/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // FileExplorer
4 | //
5 | // Created by Rob Napier on 7/30/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "FileExplorerAppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([FileExplorerAppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch17/Money/Money.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch17/Money/Money/Money-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'Money' target in the 'Money' project
3 | //
4 |
5 | #ifdef __OBJC__
6 | #import
7 | #endif
8 |
--------------------------------------------------------------------------------
/ch17/Money/Money/RNMoney.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | @interface RNMoney : NSObject
4 | @property (nonatomic, readonly, strong)
5 | NSDecimalNumber *amount;
6 | @property (nonatomic, readonly, strong)
7 | NSString *currencyCode;
8 |
9 | - (RNMoney *)initWithAmount:(NSDecimalNumber *)anAmount
10 | currencyCode:(NSString *)aCode;
11 | - (RNMoney *)initWithAmount:(NSDecimalNumber *)anAmount;
12 |
13 | - (RNMoney *)initWithIntegerAmount:(NSInteger)anAmount
14 | currencyCode:(NSString *)aCode;
15 | - (RNMoney *)initWithIntegerAmount:(NSInteger)anAmount;
16 |
17 | - (NSString *)localizedStringForLocale:(NSLocale *)aLocale;
18 | - (NSString *)localizedString;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/ch18/MKStoreKit.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch18/MKStoreKit.zip
--------------------------------------------------------------------------------
/ch20/ZipText/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch20/ZipText/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch20/ZipText/ZipText.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch20/ZipText/ZipText/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // ZipText
4 | //
5 | // Created by Rob Napier on 7/15/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class ViewController;
12 |
13 | @interface AppDelegate : UIResponder
14 |
15 | @property (strong, nonatomic) UIWindow *window;
16 |
17 | @property (strong, nonatomic) ViewController *viewController;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/ch20/ZipText/ZipText/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // ZipText
4 | //
5 | // Created by Rob Napier on 7/15/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch20/ZipText/ZipText/ZipText-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'ZipText' target in the 'ZipText' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_4_0
8 | #warning "This project uses features only available in iOS SDK 4.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch20/ZipText/ZipText/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch20/ZipText/ZipText/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // ZipText
4 | //
5 | // Created by Rob Napier on 7/15/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch21/StoryboardTransition/StoryboardTransition/CustomSegue.h:
--------------------------------------------------------------------------------
1 | //
2 | // CustomSegue.h
3 | // StoryboardTransition
4 | //
5 | // Created by Mugunth Kumar on 24/7/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training Pte Ltd. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface CustomSegue : UIStoryboardSegue
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch21/StoryboardTransition/StoryboardTransition/MKAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKAppDelegate.h
3 | // StoryboardTransition
4 | //
5 | // Created by Mugunth Kumar on 24/7/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training Pte Ltd. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MKAppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch21/StoryboardTransition/StoryboardTransition/MKDetailViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKDetailViewController.h
3 | // StoryboardTransition
4 | //
5 | // Created by Mugunth Kumar on 24/7/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training Pte Ltd. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MKDetailViewController : UIViewController
12 |
13 | @property (strong, nonatomic) id detailItem;
14 |
15 | @property (strong, nonatomic) IBOutlet UILabel *detailDescriptionLabel;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/ch21/StoryboardTransition/StoryboardTransition/MKMasterViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKMasterViewController.h
3 | // StoryboardTransition
4 | //
5 | // Created by Mugunth Kumar on 24/7/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training Pte Ltd. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MKMasterViewController : UITableViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch21/StoryboardTransition/StoryboardTransition/StoryboardTransition-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'StoryboardTransition' target in the 'StoryboardTransition' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch21/StoryboardTransition/StoryboardTransition/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch21/StoryboardTransition/StoryboardTransition/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // StoryboardTransition
4 | //
5 | // Created by Mugunth Kumar on 24/7/12.
6 | // Copyright (c) 2012 Steinlogic Consulting and Training Pte Ltd. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "MKAppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([MKAppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch22/KVC-Collection/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch22/KVC-Collection/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch22/KVC-Collection/KVC-Collection.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch22/KVC-Collection/KVC-Collection/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // KVC-Collection
4 | //
5 | // Created by Rob Napier on 9/12/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch22/KVC-Collection/KVC-Collection/KVC-Collection-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'KVC-Collection' target in the 'KVC-Collection' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch22/KVC-Collection/KVC-Collection/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch22/KVC-Collection/KVC-Collection/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // KVC-Collection
4 | //
5 | // Created by Rob Napier on 9/12/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch22/KVC/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch22/KVC/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch22/KVC/KVC.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch22/KVC/KVC/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // KVC
4 | //
5 | // Created by Rob Napier on 9/12/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch22/KVC/KVC/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // KVC
4 | //
5 | // Created by Rob Napier on 9/12/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 |
11 | @implementation AppDelegate
12 |
13 | @synthesize window = _window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch22/KVC/KVC/KVC-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'KVC' target in the 'KVC' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch22/KVC/KVC/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch22/KVC/KVC/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // KVC
4 | //
5 | // Created by Rob Napier on 9/12/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch22/KVO/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch22/KVO/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch22/KVO/KVO.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch22/KVO/KVO/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // KVO
4 | //
5 | // Created by Rob Napier on 9/12/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch22/KVO/KVO/KVO-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'KVO' target in the 'KVO' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch22/KVO/KVO/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch22/KVO/KVO/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // KVO
4 | //
5 | // Created by Rob Napier on 9/12/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch23/UIAlertViewWithBlocks/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch23/UIAlertViewWithBlocks/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch23/UIAlertViewWithBlocks/UIAlertViewWithBlocks.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch23/UIAlertViewWithBlocks/UIAlertViewWithBlocks/UIAlertView+Blocks.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIAlertView+Blocks.h
3 | // UIKitCategoryAdditions
4 | //
5 |
6 | #import
7 |
8 | typedef void (^DismissBlock)(int buttonIndex);
9 | typedef void (^CancelBlock)();
10 |
11 | @interface UIAlertView (Blocks)
12 |
13 | + (UIAlertView*) showAlertViewWithTitle:(NSString*) title
14 | message:(NSString*) message
15 | cancelButtonTitle:(NSString*) cancelButtonTitle
16 | otherButtonTitles:(NSArray*) otherButtons
17 | onDismiss:(DismissBlock) dismissed
18 | onCancel:(CancelBlock) cancelled;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/ch23/UIAlertViewWithBlocks/UIAlertViewWithBlocks/UIAlertViewWithBlocks-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'UIAlertViewWithBlocks' target in the 'UIAlertViewWithBlocks' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_3_0
8 | #warning "This project uses features only available in iPhone SDK 3.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch23/UIAlertViewWithBlocks/UIAlertViewWithBlocks/UIAlertViewWithBlocksAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIAlertViewWithBlocksAppDelegate.h
3 | // UIAlertViewWithBlocks
4 | //
5 |
6 | #import
7 |
8 | @interface UIAlertViewWithBlocksAppDelegate : NSObject
9 |
10 | @property (nonatomic, strong) IBOutlet UIWindow *window;
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/ch23/UIAlertViewWithBlocks/UIAlertViewWithBlocks/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch23/UIAlertViewWithBlocks/UIAlertViewWithBlocks/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // UIAlertViewWithBlocks
4 | //
5 | // Created by Mugunth Kumar M on 6/8/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, char *argv[])
12 | {
13 | @autoreleasepool {
14 | int retVal = UIApplicationMain(argc, argv, nil, nil);
15 | return retVal;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch23/iHotelApp/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch23/iHotelApp/MKNetworkKit/MKNetworkKit-OSX/MKNetworkKit-OSX/MKNetworkKit-OSX-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'MKNetworkKit-OSX' target in the 'MKNetworkKit-OSX' project
3 | //
4 |
5 | #ifdef __OBJC__
6 | #import
7 | #import "MKNetworkKit.h"
8 | #endif
9 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/MKNetworkKit/MKNetworkKit-iOS/MKNetworkKit-iOS/MKNetworkKit-iOS-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'MKNetworkKit-iOS' target in the 'MKNetworkKit-iOS' project
3 | //
4 |
5 | #ifdef __OBJC__
6 | #import
7 | #import "MKNetworkKit.h"
8 | #endif
9 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/MKNetworkKit/MKNetworkKit.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
12 |
13 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/MKNetworkKit/MKNetworkKit/Categories/NSDate+RFC1123.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDate+RFC1123.h
3 | // MKNetworkKit
4 | //
5 | // Created by Marcus Rohrmoser
6 | // http://blog.mro.name/2009/08/nsdateformatter-http-header/
7 | // http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1
8 |
9 | // No obvious license attached
10 |
11 | @interface NSDate (RFC1123)
12 | /**
13 | Convert a RFC1123 'Full-Date' string
14 | (http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1)
15 | into NSDate.
16 | */
17 | +(NSDate*)dateFromRFC1123:(NSString*)value_;
18 |
19 | /**
20 | Convert NSDate into a RFC1123 'Full-Date' string
21 | (http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1).
22 | */
23 | -(NSString*)rfc1123String;
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/MKNetworkKit/Mac-Demo/MKNetworkKit-OSX-Demo/MKNetworkKit-OSX-Demo/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // MKNetworkKit-OSX-Demo
4 | //
5 | // Created by Mugunth Kumar on 7/12/11.
6 | // Copyright (c) 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : NSObject
12 |
13 | @property (assign) IBOutlet NSWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/MKNetworkKit/Mac-Demo/MKNetworkKit-OSX-Demo/MKNetworkKit-OSX-Demo/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // MKNetworkKit-OSX-Demo
4 | //
5 | // Created by Mugunth Kumar on 7/12/11.
6 | // Copyright (c) 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 |
11 | @implementation AppDelegate
12 |
13 | @synthesize window = _window;
14 |
15 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
16 | {
17 | // Insert code here to initialize your application
18 | }
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/MKNetworkKit/Mac-Demo/MKNetworkKit-OSX-Demo/MKNetworkKit-OSX-Demo/MKNetworkKit-OSX-Demo-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'MKNetworkKit-OSX-Demo' target in the 'MKNetworkKit-OSX-Demo' project
3 | //
4 |
5 | #ifdef __OBJC__
6 | #import
7 | #endif
8 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/MKNetworkKit/Mac-Demo/MKNetworkKit-OSX-Demo/MKNetworkKit-OSX-Demo/en.lproj/Credits.rtf:
--------------------------------------------------------------------------------
1 | {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
2 | {\colortbl;\red255\green255\blue255;}
3 | \paperw9840\paperh8400
4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
5 |
6 | \f0\b\fs24 \cf0 Engineering:
7 | \b0 \
8 | Some people\
9 | \
10 |
11 | \b Human Interface Design:
12 | \b0 \
13 | Some other people\
14 | \
15 |
16 | \b Testing:
17 | \b0 \
18 | Hopefully not nobody\
19 | \
20 |
21 | \b Documentation:
22 | \b0 \
23 | Whoever\
24 | \
25 |
26 | \b With special thanks to:
27 | \b0 \
28 | Mom\
29 | }
30 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/MKNetworkKit/Mac-Demo/MKNetworkKit-OSX-Demo/MKNetworkKit-OSX-Demo/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/MKNetworkKit/Mac-Demo/MKNetworkKit-OSX-Demo/MKNetworkKit-OSX-Demo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // MKNetworkKit-OSX-Demo
4 | //
5 | // Created by Mugunth Kumar on 7/12/11.
6 | // Copyright (c) 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, char *argv[])
12 | {
13 | return NSApplicationMain(argc, (const char **)argv);
14 | }
15 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/MKNetworkKit/SampleImage.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch23/iHotelApp/MKNetworkKit/SampleImage.jpg
--------------------------------------------------------------------------------
/ch23/iHotelApp/MKNetworkKit/ServerTests/basic_auth.php:
--------------------------------------------------------------------------------
1 | Hello {$_SERVER['PHP_AUTH_USER']}.";
11 | echo "You entered {$_SERVER['PHP_AUTH_PW']} as your password.
";
12 | }
13 | else
14 | {
15 | echo "Sorry, invalid crednetials
";
16 | }
17 | }
18 | ?>
--------------------------------------------------------------------------------
/ch23/iHotelApp/MKNetworkKit/iOS-Demo/MKNetworkKitDemo/AuthTestEngine.h:
--------------------------------------------------------------------------------
1 | //
2 | // AuthTestEngine.h
3 | // MKNetworkKit-iOS-Demo
4 | //
5 | // Created by Mugunth Kumar on 4/12/11.
6 | // Copyright (c) 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | @interface AuthTestEngine : MKNetworkEngine
10 |
11 | -(void) basicAuthTest;
12 | -(void) digestAuthTest;
13 | -(void)digestAuthTestWithUser:(NSString*)username password:(NSString*)password;
14 | -(void) clientCertTest;
15 | -(int) cacheMemoryCost;
16 |
17 | -(MKNetworkOperation*) uploadImageFromFile:(NSString*) file
18 | onCompletion:(TwitPicBlock) completionBlock
19 | onError:(MKNKErrorBlock) errorBlock;
20 | @end
21 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/MKNetworkKit/iOS-Demo/MKNetworkKitDemo/ExamplePost.h:
--------------------------------------------------------------------------------
1 | //
2 | // ExamplePost.h
3 | // MKNetworkKitDemo
4 | //
5 | // Created by Mugunth Kumar on 1/12/11.
6 | // Copyright (c) 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | @interface ExamplePost : MKNetworkEngine
10 |
11 | -(MKNetworkOperation*) postDataToServer;
12 | @end
13 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/MKNetworkKit/iOS-Demo/MKNetworkKitDemo/FlickrCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // FlickrCell.h
3 | // MKNetworkKit-iOS-Demo
4 | //
5 | // Created by Mugunth Kumar on 22/1/12.
6 | // Copyright (c) 2012 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface FlickrCell : UITableViewCell
12 |
13 | @property (nonatomic, assign) IBOutlet UIImageView *thumbnailImage;
14 | @property (nonatomic, assign) IBOutlet UILabel *titleLabel;
15 | @property (nonatomic, assign) IBOutlet UILabel *authorNameLabel;
16 |
17 | @property (nonatomic, strong) NSString* loadingImageURLString;
18 | @property (nonatomic, strong) MKNetworkOperation* imageLoadingOperation;
19 | -(void) setFlickrData:(NSDictionary*) thisFlickrImage;
20 | @end
21 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/MKNetworkKit/iOS-Demo/MKNetworkKitDemo/FlickrTableViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // FlickrTableViewController.h
3 | // MKNetworkKit-iOS-Demo
4 | //
5 | // Created by Mugunth Kumar on 22/1/12.
6 | // Copyright (c) 2012 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface FlickrTableViewController : UITableViewController
12 |
13 | @property (strong, nonatomic) NSMutableArray *flickrImages;
14 | @end
15 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/MKNetworkKit/iOS-Demo/MKNetworkKitDemo/MKNetworkKit-iOS-Demo-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'MKNetworkKit' target in the 'MKNetworkKit' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #import "../../MKNetworkKit/MKNetworkKit.h"
15 | #import "AppDelegate.h"
16 | #endif
17 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/MKNetworkKit/iOS-Demo/MKNetworkKitDemo/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/MKNetworkKit/iOS-Demo/MKNetworkKitDemo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // MKNetworkKit
4 | //
5 | // Created by Mugunth Kumar on 7/11/11.
6 | // Copyright (c) 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/MKNetworkKit/iOS-Demo/client.p12:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch23/iHotelApp/MKNetworkKit/iOS-Demo/client.p12
--------------------------------------------------------------------------------
/ch23/iHotelApp/iHotelApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/iHotelApp/JSONModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // ModelBase.h
3 | // iHotelApp
4 | //
5 |
6 | #import
7 |
8 | @interface JSONModel : NSObject {
9 |
10 | }
11 |
12 | -(id) initWithDictionary:(NSMutableDictionary*) jsonObject;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/iHotelApp/RESTError.h:
--------------------------------------------------------------------------------
1 | //
2 | // RESTError.h
3 | // iHotelApp
4 | //
5 | // Created by Mugunth Kumar on 1-Jan-11.
6 | // Copyright 2010 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 | #define kRequestErrorDomain @"HTTP_ERROR"
11 | #define kBusinessErrorDomain @"BIZ_ERROR" // rename this appropriately
12 |
13 | @interface RESTError : NSError
14 |
15 | @property (nonatomic, strong) NSString *message;
16 | @property (nonatomic, strong) NSString *errorCode;
17 |
18 | - (NSString*) localizedOption;
19 | -(id) initWithDictionary:(NSMutableDictionary*) jsonObject;
20 | @end
21 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/iHotelApp/RESTfulOperation.h:
--------------------------------------------------------------------------------
1 | //
2 | // RESTfulOperation.h
3 | // iHotelApp
4 | //
5 | // Created by Mugunth on 28/05/11.
6 | // Copyright 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "RESTError.h"
12 |
13 | @interface RESTfulOperation : MKNetworkOperation
14 |
15 | @property (nonatomic, strong) RESTError *restError;
16 | @end
17 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/iHotelApp/Review.h:
--------------------------------------------------------------------------------
1 | //
2 | // Review.h
3 | //
4 | //
5 | // Created by Mugunth Kumar on 28/05/11.
6 | // Copyright 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "JSONModel.h"
11 |
12 | @interface Review : JSONModel
13 |
14 | @property (nonatomic, strong) NSString *rating;
15 | @property (nonatomic, strong) NSString *reviewDate;
16 | @property (nonatomic, strong) NSString *reviewerName;
17 | @property (nonatomic, strong) NSString *reviewId;
18 | @property (nonatomic, strong) NSString *reviewText;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/iHotelApp/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/iHotelApp/iHotelApp-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'iHotelApp' target in the 'iHotelApp' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iPhone SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #import "MKNetworkKit.h"
15 | #endif
16 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/iHotelApp/iHotelAppAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // iHotelAppAppDelegate.h
3 | // iHotelApp
4 | //
5 |
6 | #import
7 | #import "RESTfulEngine.h"
8 | #define AppDelegate ((iHotelAppAppDelegate *)[UIApplication sharedApplication].delegate)
9 |
10 | @class iHotelAppViewController;
11 |
12 | @interface iHotelAppAppDelegate : NSObject {
13 |
14 | }
15 |
16 | @property (nonatomic, strong) IBOutlet UIWindow *window;
17 |
18 | @property (nonatomic, strong) IBOutlet UINavigationController *navigationController;
19 |
20 | @property (nonatomic, strong) RESTfulEngine *engine;
21 | @end
22 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/iHotelApp/iHotelAppMenuViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // iHotelAppMenuViewController.h
3 | // iHotelApp
4 | //
5 | // Created by Mugunth on 28/6/12.
6 | // Copyright (c) 2012 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface iHotelAppMenuViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/iHotelApp/iHotelAppViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // iHotelAppViewController.h
3 | // iHotelApp
4 | //
5 |
6 | #import
7 | #import "RESTfulEngine.h"
8 |
9 | @interface iHotelAppViewController : UIViewController
10 |
11 | @end
12 |
--------------------------------------------------------------------------------
/ch23/iHotelApp/iHotelApp/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // iHotelApp
4 | //
5 |
6 | #import
7 |
8 | int main(int argc, char *argv[])
9 | {
10 | @autoreleasepool {
11 | int retVal = UIApplicationMain(argc, argv, nil, nil);
12 | return retVal;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/ch24/iHotelApp/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch24/iHotelApp/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch24/iHotelApp/MKNetworkKit:
--------------------------------------------------------------------------------
1 | ../../ch23/iHotelApp/MKNetworkKit
--------------------------------------------------------------------------------
/ch24/iHotelApp/iHotelApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch24/iHotelApp/iHotelApp/AppCache.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppCache.h
3 | // iHotelApp
4 | //
5 |
6 | #import
7 |
8 | @interface AppCache : NSObject
9 |
10 | +(void) clearCache;
11 | +(void) cacheMenuItems:(NSArray*) menuItems;
12 | +(NSMutableArray*) getCachedMenuItems;
13 | +(BOOL) isMenuItemsStale;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch24/iHotelApp/iHotelApp/JSONModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // ModelBase.h
3 | // Steinlogic
4 | //
5 | // Created by Mugunth Kumar on 26-Jul-10.
6 | // Copyright 2011 Steinlogic All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface JSONModel : NSObject {
12 |
13 | }
14 |
15 | -(id) initWithDictionary:(NSMutableDictionary*) jsonObject;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/ch24/iHotelApp/iHotelApp/RESTError.h:
--------------------------------------------------------------------------------
1 | //
2 | // RESTError.h
3 | // iHotelApp
4 | //
5 | // Created by Mugunth Kumar on 1-Jan-11.
6 | // Copyright 2010 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 | #define kRequestErrorDomain @"HTTP_ERROR"
11 | #define kBusinessErrorDomain @"BIZ_ERROR" // rename this appropriately
12 |
13 | @interface RESTError : NSError
14 |
15 | @property (nonatomic, strong) NSString *message;
16 | @property (nonatomic, strong) NSString *errorCode;
17 |
18 | - (NSString*) localizedOption;
19 | -(id) initWithDictionary:(NSMutableDictionary*) jsonObject;
20 | @end
21 |
--------------------------------------------------------------------------------
/ch24/iHotelApp/iHotelApp/RESTfulOperation.h:
--------------------------------------------------------------------------------
1 | //
2 | // RESTfulOperation.h
3 | // iHotelApp
4 | //
5 | // Created by Mugunth on 28/05/11.
6 | // Copyright 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "RESTError.h"
12 |
13 | @interface RESTfulOperation : MKNetworkOperation
14 |
15 | @property (nonatomic, strong) RESTError *restError;
16 | @end
17 |
--------------------------------------------------------------------------------
/ch24/iHotelApp/iHotelApp/Review.h:
--------------------------------------------------------------------------------
1 | //
2 | // Review.h
3 | //
4 | //
5 | // Created by Mugunth Kumar on 28/05/11.
6 | // Copyright 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "JSONModel.h"
11 |
12 | @interface Review : JSONModel
13 |
14 | @property (nonatomic, strong) NSString *rating;
15 | @property (nonatomic, strong) NSString *reviewDate;
16 | @property (nonatomic, strong) NSString *reviewerName;
17 | @property (nonatomic, strong) NSString *reviewId;
18 | @property (nonatomic, strong) NSString *reviewText;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/ch24/iHotelApp/iHotelApp/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch24/iHotelApp/iHotelApp/iHotelApp-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'iHotelApp' target in the 'iHotelApp' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_3_0
8 | #warning "This project uses features only available in iPhone SDK 3.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #import "MKNetworkKit.h"
15 | #endif
16 |
--------------------------------------------------------------------------------
/ch24/iHotelApp/iHotelApp/iHotelAppAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // iHotelAppAppDelegate.h
3 | // iHotelApp
4 | //
5 | // Created by Mugunth on 25/05/11.
6 | // Copyright 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "RESTfulEngine.h"
11 | #define AppDelegate ((iHotelAppAppDelegate *)[UIApplication sharedApplication].delegate)
12 |
13 | @class iHotelAppViewController;
14 |
15 | @interface iHotelAppAppDelegate : NSObject
16 |
17 | @property (nonatomic, strong) IBOutlet UIWindow *window;
18 |
19 | @property (nonatomic, strong) IBOutlet UINavigationController *navController;
20 |
21 | @property (nonatomic, strong) RESTfulEngine *engine;
22 | @end
23 |
--------------------------------------------------------------------------------
/ch24/iHotelApp/iHotelApp/iHotelAppMenuViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // iHotelAppMenuViewController.h
3 | // iHotelApp
4 | //
5 | // Created by Mugunth on 28/6/12.
6 | // Copyright (c) 2012 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface iHotelAppMenuViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch24/iHotelApp/iHotelApp/iHotelAppViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // iHotelAppViewController.h
3 | // iHotelApp
4 | //
5 | // Created by Mugunth on 25/05/11.
6 | // Copyright 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "RESTfulEngine.h"
11 |
12 | @interface iHotelAppViewController : UIViewController
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/ch24/iHotelApp/iHotelApp/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // iHotelApp
4 | //
5 | // Created by Mugunth on 25/05/11.
6 | // Copyright 2011 Steinlogic. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, char *argv[])
12 | {
13 | @autoreleasepool {
14 | int retVal = UIApplicationMain(argc, argv, nil, nil);
15 | return retVal;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/ch26/AutoReturn/AutoReturn.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch26/AutoReturn/AutoReturn/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // AutoReturn
4 | //
5 | // Created by Rob Napier on 8/23/11.
6 | //
7 |
8 | #import
9 |
10 | @interface AppDelegate : UIResponder
11 |
12 | @property (strong, nonatomic) UIWindow *window;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/ch26/AutoReturn/AutoReturn/AutoReturn-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'AutoReturn' target in the 'AutoReturn' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch26/AutoReturn/AutoReturn/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch26/AutoReturn/AutoReturn/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // AutoReturn
4 | //
5 | // Created by Rob Napier on 8/23/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch26/AutoReturn/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch26/AutoReturn/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch26/CurvyText/CurvyText.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch26/CurvyText/CurvyText/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // CurvyText
4 | //
5 | // Created by Rob Napier on 8/28/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch26/CurvyText/CurvyText/CurvyText-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'CurvyText' target in the 'CurvyText' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch26/CurvyText/CurvyText/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // CurvyText
4 | //
5 | // Created by Rob Napier on 8/28/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch26/CurvyText/CurvyText/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch26/CurvyText/CurvyText/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // CurvyText
4 | //
5 | // Created by Rob Napier on 8/28/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch26/RichText/RichText.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch26/RichText/RichText/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // RichText
4 | //
5 | // Created by Rob Napier on 8/20/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch26/RichText/RichText/RichText-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'RichText' target in the 'RichText' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch26/RichText/RichText/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch26/RichText/RichText/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // RichText
4 | //
5 | // Created by Rob Napier on 8/20/12.
6 | // Copyright (c) 2012 Rob Napier. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch26/SimpleLayout/CoreTextLabel.h:
--------------------------------------------------------------------------------
1 | //
2 | // CoreTextLabel.h
3 | // SimpleLayout
4 | //
5 | // Created by Rob Napier on 8/25/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface CoreTextLabel : UIView
12 | @property (nonatomic, copy) NSAttributedString *attributedString;
13 | @end
14 |
--------------------------------------------------------------------------------
/ch26/SimpleLayout/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch26/SimpleLayout/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch26/SimpleLayout/SimpleLayout.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch26/SimpleLayout/SimpleLayout/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // SimpleLayout
4 | //
5 | // Created by Rob Napier on 8/25/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ch26/SimpleLayout/SimpleLayout/SimpleLayout-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'SimpleLayout' target in the 'SimpleLayout' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_5_0
8 | #warning "This project uses features only available in iOS SDK 5.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch26/SimpleLayout/SimpleLayout/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // SimpleLayout
4 | //
5 | // Created by Rob Napier on 8/25/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ch26/SimpleLayout/SimpleLayout/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch26/SimpleLayout/SimpleLayout/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // SimpleLayout
4 | //
5 | // Created by Rob Napier on 8/25/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char *argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ch27/CoreFoundation/CoreFoundation.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch27/CoreFoundation/CoreFoundation/CoreFoundation-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'CoreFoundation' target in the 'CoreFoundation' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_3_0
8 | #warning "This project uses features only available in iOS SDK 3.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch27/CoreFoundation/CoreFoundation/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch27/CoreFoundation/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch27/CoreFoundation/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch28/ISASwizzle/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch28/ISASwizzle/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch28/ISASwizzle/ISASwizzle.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch28/ISASwizzle/ISASwizzle/ISASwizzle-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'ISASwizzle' target in the 'ISASwizzle' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_3_0
8 | #warning "This project uses features only available in iOS SDK 3.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch28/ISASwizzle/ISASwizzle/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch28/MethodSwizzle/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch28/MethodSwizzle/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch28/MethodSwizzle/MethodSwizzle.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch28/MethodSwizzle/MethodSwizzle/MethodSwizzle-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'MethodSwizzle' target in the 'MethodSwizzle' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_3_0
8 | #warning "This project uses features only available in iOS SDK 3.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch28/MethodSwizzle/MethodSwizzle/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch28/MethodSwizzle/NSNotificationCenter+RNSwizzle.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSNotification+RNSwizzle.h
3 | // MethodSwizzle
4 | //
5 | // Created by Rob Napier on 6/8/11.
6 | // Copyright 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSNotificationCenter (RNSwizzle)
12 | + (void)swizzleAddObserver;
13 | @end
14 |
--------------------------------------------------------------------------------
/ch28/MethodSwizzle/RNSwizzle.h:
--------------------------------------------------------------------------------
1 | //
2 | // RNSwizzle.h
3 | // MethodSwizzle
4 |
5 | #import
6 |
7 | @interface NSObject (RNSwizzle)
8 | + (IMP)swizzleSelector:(SEL)origSelector
9 | withIMP:(IMP)newIMP;
10 | @end
11 |
--------------------------------------------------------------------------------
/ch28/MethodSwizzle/RNSwizzle.m:
--------------------------------------------------------------------------------
1 | //
2 | // RNSwizzle.m
3 | // MethodSwizzle
4 |
5 | #import "RNSwizzle.h"
6 | #import
7 | @implementation NSObject (RNSwizzle)
8 |
9 | + (IMP)swizzleSelector:(SEL)origSelector
10 | withIMP:(IMP)newIMP {
11 | Class class = [self class];
12 | Method origMethod = class_getInstanceMethod(class,
13 | origSelector);
14 | IMP origIMP = method_getImplementation(origMethod);
15 |
16 | if(!class_addMethod(self, origSelector, newIMP,
17 | method_getTypeEncoding(origMethod)))
18 | {
19 | method_setImplementation(origMethod, newIMP);
20 | }
21 |
22 | return origIMP;
23 | }
24 | @end
25 |
--------------------------------------------------------------------------------
/ch28/Person/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch28/Person/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch28/Person/Person.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch28/Person/Person/Person-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'Person' target in the 'Person' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_3_0
8 | #warning "This project uses features only available in iOS SDK 3.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch28/Person/Person/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch28/Runtime/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/iosptl/ios6ptl/26a606c50430395f8579e0e290a171994f32826f/ch28/Runtime/Default-568h@2x.png
--------------------------------------------------------------------------------
/ch28/Runtime/Runtime.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ch28/Runtime/Runtime/Runtime-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'Runtime' target in the 'Runtime' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_3_0
8 | #warning "This project uses features only available in iOS SDK 3.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/ch28/Runtime/Runtime/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/ch28/Runtime/Runtime/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Runtime
4 | //
5 | // Created by Rob Napier on 8/22/11.
6 | // Copyright (c) 2011 __MyCompanyName__. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import "PrintObjectMethods.h"
12 | #import "MyMsgSend.h"
13 | #import "FastCall.h"
14 |
15 | int main(int argc, char *argv[])
16 | {
17 | @autoreleasepool {
18 | printf("PrintObjectMethods()\n");
19 | PrintObjectMethods();
20 | printf("\n\nRunMyMsgSend()\n");
21 | RunMyMsgSend();
22 | printf("\n\nFastCall()\n");
23 | FastCall();
24 | return 0; //UIApplicationMain(argc, argv, nil, nil);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------