Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: xanderdunn/cs193pFlickrExplorer
base: c34a41a1a3
...
head fork: xanderdunn/cs193pFlickrExplorer
compare: 5ad81eae1f
  • 2 commits
  • 13 files changed
  • 0 commit comments
  • 1 contributor
Commits on Mar 05, 2013
thoughtadvances Add CocoaPods and reorganize project directories eaadf39
Commits on Mar 06, 2013
thoughtadvances Remove unnecessary dependencies 5ad81ea
View
165 FlickrExplorer.xcodeproj/project.pbxproj
@@ -9,7 +9,6 @@
/* Begin PBXBuildFile section */
841E793C16A91AD200480E01 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 841E793B16A91AD200480E01 /* MapKit.framework */; };
841E793F16A91ADA00480E01 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 841E793E16A91ADA00480E01 /* CoreLocation.framework */; };
- 841E794216A91BC500480E01 /* TASpinner.m in Sources */ = {isa = PBXBuildFile; fileRef = 841E794116A91BC500480E01 /* TASpinner.m */; };
841E795116A9403900480E01 /* IOSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 841E795016A9403900480E01 /* IOSupport.m */; };
841E795716A9844C00480E01 /* DetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 841E795616A9844C00480E01 /* DetailViewController.m */; };
8468C4D81684B27B0085107C /* FlickrPhotoSelectorTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8468C4D71684B27B0085107C /* FlickrPhotoSelectorTableViewController.m */; };
@@ -28,21 +27,19 @@
848A2EEF1684A0BC008E0062 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 848A2EEE1684A0BC008E0062 /* Default.png */; };
848A2EF11684A0BC008E0062 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 848A2EF01684A0BC008E0062 /* Default@2x.png */; };
848A2EF31684A0BC008E0062 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 848A2EF21684A0BC008E0062 /* Default-568h@2x.png */; };
- 848A2EF61684A0BC008E0062 /* MainStoryboard_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 848A2EF41684A0BC008E0062 /* MainStoryboard_iPhone.storyboard */; };
- 848A2EF91684A0BC008E0062 /* MainStoryboard_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 848A2EF71684A0BC008E0062 /* MainStoryboard_iPad.storyboard */; };
+ 848A2EF61684A0BC008E0062 /* iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 848A2EF41684A0BC008E0062 /* iPhone.storyboard */; };
848A2F031684A0E2008E0062 /* README in Resources */ = {isa = PBXBuildFile; fileRef = 848A2F021684A0E2008E0062 /* README */; };
848A2F081684A141008E0062 /* FlickrFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 848A2F071684A141008E0062 /* FlickrFetcher.m */; };
848A2F0B1684A310008E0062 /* FlickrTopPlacesTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 848A2F0A1684A310008E0062 /* FlickrTopPlacesTableViewController.m */; };
- 848D4A8A16B2D077008F952B /* NSData+LogURLDownload.m in Sources */ = {isa = PBXBuildFile; fileRef = 848D4A8916B2D077008F952B /* NSData+LogURLDownload.m */; };
848DB3B116AA8C9C004AA2EC /* RotatableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 848DB3B016AA8C9C004AA2EC /* RotatableViewController.m */; };
848E0D7F16A8E8FC005509B8 /* MapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 848E0D7E16A8E8FC005509B8 /* MapViewController.m */; };
848E28511685743400A84B40 /* FlickrPhotoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 848E28501685743400A84B40 /* FlickrPhotoViewController.m */; };
848E285416858A2D00A84B40 /* RecentPhotosSelectorTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 848E285316858A2D00A84B40 /* RecentPhotosSelectorTableViewController.m */; };
848E5A1016C484F8005E3E92 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 848E5A0F16C484F8005E3E92 /* SystemConfiguration.framework */; };
- 848E5DFF16AA7CEB00840F97 /* Test_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 848E5DFE16AA7CEB00840F97 /* Test_iPad.storyboard */; };
- 848E78A216C4019A001416E5 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 848E78A116C4019A001416E5 /* Reachability.m */; };
+ 848E5DFF16AA7CEB00840F97 /* iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 848E5DFE16AA7CEB00840F97 /* iPad.storyboard */; };
84906ACC16AFC03E0010C242 /* SegmentedViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 84906ACB16AFC03E0010C242 /* SegmentedViewController.m */; };
84924A0116E503D30054D846 /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 849249FF16E503D30054D846 /* Model.xcdatamodeld */; };
+ 84935F3816E5C74000166E23 /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84935F3716E5C74000166E23 /* CoreData.framework */; };
8494481816AE29E6009C599C /* ViewControllerSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 8494481716AE29E5009C599C /* ViewControllerSupport.m */; };
84B1E14116E0631F00C1A84F /* VacationTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B1E14016E0631F00C1A84F /* VacationTableViewController.m */; };
84B1E14516E0652000C1A84F /* TagsTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B1E14416E0652000C1A84F /* TagsTableViewController.m */; };
@@ -50,13 +47,14 @@
84E2319216BCF424005CF3DF /* FlickrMapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 84E2319116BCF424005CF3DF /* FlickrMapViewController.m */; };
84F6626A1684A99A000CE17B /* PhotoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 84F662691684A99A000CE17B /* PhotoViewController.m */; };
84FCA8E316E485AB00501507 /* FlickrPlacesTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 84FCA8E216E485AB00501507 /* FlickrPlacesTableViewController.m */; };
+ E836D31387F347779E7DEDC8 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 38727BE717CA4FAE85262720 /* libPods.a */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
+ 38727BE717CA4FAE85262720 /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; };
+ 751EF9E85E404C82AA292A43 /* Pods.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.xcconfig; path = Pods/Pods.xcconfig; sourceTree = SOURCE_ROOT; };
841E793B16A91AD200480E01 /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; };
841E793E16A91ADA00480E01 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; };
- 841E794016A91BC500480E01 /* TASpinner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TASpinner.h; sourceTree = "<group>"; };
- 841E794116A91BC500480E01 /* TASpinner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TASpinner.m; sourceTree = "<group>"; };
841E794F16A9403900480E01 /* IOSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IOSupport.h; sourceTree = "<group>"; };
841E795016A9403900480E01 /* IOSupport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IOSupport.m; sourceTree = "<group>"; };
841E795516A9844C00480E01 /* DetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailViewController.h; path = FlickrExplorer/DetailViewController.h; sourceTree = "<group>"; };
@@ -88,16 +86,13 @@
848A2EEE1684A0BC008E0062 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
848A2EF01684A0BC008E0062 /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = "<group>"; };
848A2EF21684A0BC008E0062 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; };
- 848A2EF51684A0BC008E0062 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard_iPhone.storyboard; sourceTree = "<group>"; };
- 848A2EF81684A0BC008E0062 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard_iPad.storyboard; sourceTree = "<group>"; };
+ 848A2EF51684A0BC008E0062 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/iPhone.storyboard; sourceTree = "<group>"; };
848A2F021684A0E2008E0062 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README; path = ../README; sourceTree = "<group>"; };
848A2F051684A141008E0062 /* FlickrAPIKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FlickrAPIKey.h; sourceTree = "<group>"; };
848A2F061684A141008E0062 /* FlickrFetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FlickrFetcher.h; sourceTree = "<group>"; };
848A2F071684A141008E0062 /* FlickrFetcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FlickrFetcher.m; sourceTree = "<group>"; };
848A2F091684A310008E0062 /* FlickrTopPlacesTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FlickrTopPlacesTableViewController.h; sourceTree = "<group>"; };
848A2F0A1684A310008E0062 /* FlickrTopPlacesTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FlickrTopPlacesTableViewController.m; sourceTree = "<group>"; };
- 848D4A8816B2D076008F952B /* NSData+LogURLDownload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+LogURLDownload.h"; sourceTree = "<group>"; };
- 848D4A8916B2D077008F952B /* NSData+LogURLDownload.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+LogURLDownload.m"; sourceTree = "<group>"; };
848DB3AF16AA8C9C004AA2EC /* RotatableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RotatableViewController.h; path = FlickrExplorer/RotatableViewController.h; sourceTree = "<group>"; };
848DB3B016AA8C9C004AA2EC /* RotatableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RotatableViewController.m; path = FlickrExplorer/RotatableViewController.m; sourceTree = "<group>"; };
848E0D7D16A8E8FC005509B8 /* MapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MapViewController.h; sourceTree = "<group>"; };
@@ -107,22 +102,21 @@
848E285216858A2D00A84B40 /* RecentPhotosSelectorTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RecentPhotosSelectorTableViewController.h; sourceTree = "<group>"; };
848E285316858A2D00A84B40 /* RecentPhotosSelectorTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RecentPhotosSelectorTableViewController.m; sourceTree = "<group>"; };
848E5A0F16C484F8005E3E92 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
- 848E5DFE16AA7CEB00840F97 /* Test_iPad.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Test_iPad.storyboard; sourceTree = "<group>"; };
- 848E78A016C4019A001416E5 /* Reachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Reachability.h; path = FlickrExplorer/Reachability.h; sourceTree = "<group>"; };
- 848E78A116C4019A001416E5 /* Reachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Reachability.m; path = FlickrExplorer/Reachability.m; sourceTree = "<group>"; };
+ 848E5DFE16AA7CEB00840F97 /* iPad.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = iPad.storyboard; sourceTree = "<group>"; };
84906ACA16AFC03E0010C242 /* SegmentedViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SegmentedViewController.h; sourceTree = "<group>"; };
84906ACB16AFC03E0010C242 /* SegmentedViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SegmentedViewController.m; sourceTree = "<group>"; };
84924A0016E503D30054D846 /* Model.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Model.xcdatamodel; sourceTree = "<group>"; };
+ 84935F3716E5C74000166E23 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
8494481616AE29E5009C599C /* ViewControllerSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewControllerSupport.h; sourceTree = "<group>"; };
8494481716AE29E5009C599C /* ViewControllerSupport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewControllerSupport.m; sourceTree = "<group>"; };
- 84B1E13F16E0631F00C1A84F /* VacationTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VacationTableViewController.h; path = FlickrExplorer/ViewControllers/VacationTableViewController.h; sourceTree = "<group>"; };
- 84B1E14016E0631F00C1A84F /* VacationTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VacationTableViewController.m; path = FlickrExplorer/ViewControllers/VacationTableViewController.m; sourceTree = "<group>"; };
- 84B1E14316E0652000C1A84F /* TagsTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TagsTableViewController.h; path = FlickrExplorer/ViewControllers/TagsTableViewController.h; sourceTree = "<group>"; };
- 84B1E14416E0652000C1A84F /* TagsTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TagsTableViewController.m; path = FlickrExplorer/ViewControllers/TagsTableViewController.m; sourceTree = "<group>"; };
+ 84B1E13F16E0631F00C1A84F /* VacationTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VacationTableViewController.h; path = ViewControllers/VacationTableViewController.h; sourceTree = "<group>"; };
+ 84B1E14016E0631F00C1A84F /* VacationTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VacationTableViewController.m; path = ViewControllers/VacationTableViewController.m; sourceTree = "<group>"; };
+ 84B1E14316E0652000C1A84F /* TagsTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TagsTableViewController.h; path = ViewControllers/TagsTableViewController.h; sourceTree = "<group>"; };
+ 84B1E14416E0652000C1A84F /* TagsTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TagsTableViewController.m; path = ViewControllers/TagsTableViewController.m; sourceTree = "<group>"; };
84B1E14616E0654400C1A84F /* ItineraryTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ItineraryTableViewController.h; path = ViewControllers/ItineraryTableViewController.h; sourceTree = "<group>"; };
84B1E14716E0654400C1A84F /* ItineraryTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ItineraryTableViewController.m; path = ViewControllers/ItineraryTableViewController.m; sourceTree = "<group>"; };
- 84E2319016BCF424005CF3DF /* FlickrMapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FlickrMapViewController.h; path = FlickrExplorer/FlickrMapViewController.h; sourceTree = "<group>"; };
- 84E2319116BCF424005CF3DF /* FlickrMapViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FlickrMapViewController.m; path = FlickrExplorer/FlickrMapViewController.m; sourceTree = "<group>"; };
+ 84E2319016BCF424005CF3DF /* FlickrMapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FlickrMapViewController.h; sourceTree = "<group>"; };
+ 84E2319116BCF424005CF3DF /* FlickrMapViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FlickrMapViewController.m; sourceTree = "<group>"; };
84F662681684A99A000CE17B /* PhotoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PhotoViewController.h; sourceTree = "<group>"; };
84F662691684A99A000CE17B /* PhotoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PhotoViewController.m; sourceTree = "<group>"; };
84F74F4C1691A5F80021864C /* SplitViewBarButtonItemPresenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SplitViewBarButtonItemPresenter.h; path = ../Psychologist/Psychologist/SplitViewBarButtonItemPresenter.h; sourceTree = "<group>"; };
@@ -135,12 +129,14 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ 84935F3816E5C74000166E23 /* CoreData.framework in Frameworks */,
848E5A1016C484F8005E3E92 /* SystemConfiguration.framework in Frameworks */,
841E793F16A91ADA00480E01 /* CoreLocation.framework in Frameworks */,
841E793C16A91AD200480E01 /* MapKit.framework in Frameworks */,
848A2EDD1684A0BC008E0062 /* UIKit.framework in Frameworks */,
848A2EDF1684A0BC008E0062 /* Foundation.framework in Frameworks */,
848A2EE11684A0BC008E0062 /* CoreGraphics.framework in Frameworks */,
+ E836D31387F347779E7DEDC8 /* libPods.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -161,12 +157,18 @@
848664CD16E50A1C0076A364 /* Photo.m */,
);
name = "Core Data";
- path = ..;
sourceTree = "<group>";
};
848800A616B4223300A5496D /* View Controllers */ = {
isa = PBXGroup;
children = (
+ 8490C00216A57BA70001026A /* Split View Rotation */,
+ 84B1E13F16E0631F00C1A84F /* VacationTableViewController.h */,
+ 84B1E14016E0631F00C1A84F /* VacationTableViewController.m */,
+ 84B1E14316E0652000C1A84F /* TagsTableViewController.h */,
+ 84B1E14416E0652000C1A84F /* TagsTableViewController.m */,
+ 84E2319016BCF424005CF3DF /* FlickrMapViewController.h */,
+ 84E2319116BCF424005CF3DF /* FlickrMapViewController.m */,
84FCA8E116E485AB00501507 /* FlickrPlacesTableViewController.h */,
84FCA8E216E485AB00501507 /* FlickrPlacesTableViewController.m */,
84B1E14616E0654400C1A84F /* ItineraryTableViewController.h */,
@@ -187,34 +189,21 @@
848E0D7E16A8E8FC005509B8 /* MapViewController.m */,
);
name = "View Controllers";
- sourceTree = "<group>";
- };
- 848800A816B4227300A5496D /* Testing */ = {
- isa = PBXGroup;
- children = (
- 848D4A8816B2D076008F952B /* NSData+LogURLDownload.h */,
- 848D4A8916B2D077008F952B /* NSData+LogURLDownload.m */,
- );
- name = Testing;
+ path = FlickrExplorer;
sourceTree = "<group>";
};
848A2ECD1684A0BB008E0062 = {
isa = PBXGroup;
children = (
- 84B1E13F16E0631F00C1A84F /* VacationTableViewController.h */,
- 84B1E14016E0631F00C1A84F /* VacationTableViewController.m */,
- 84B1E14316E0652000C1A84F /* TagsTableViewController.h */,
- 84B1E14416E0652000C1A84F /* TagsTableViewController.m */,
- 848E5A0F16C484F8005E3E92 /* SystemConfiguration.framework */,
- 84E2319016BCF424005CF3DF /* FlickrMapViewController.h */,
- 848E78A016C4019A001416E5 /* Reachability.h */,
- 848E78A116C4019A001416E5 /* Reachability.m */,
- 84E2319116BCF424005CF3DF /* FlickrMapViewController.m */,
- 841E793E16A91ADA00480E01 /* CoreLocation.framework */,
- 841E793B16A91AD200480E01 /* MapKit.framework */,
- 848A2EE21684A0BC008E0062 /* FlickrExplorer */,
+ 848800A616B4223300A5496D /* View Controllers */,
+ 848E5E0016AA7CFA00840F97 /* UI */,
+ 848E4DB016AA74750038C354 /* Utility Methods */,
+ 848664D916E50A320076A364 /* Core Data */,
+ 848E4DAD16AA74420038C354 /* Data Objects */,
848A2F041684A141008E0062 /* FlickrFetcher */,
+ 848E4DB216AA749B0038C354 /* Images */,
848A2EDB1684A0BB008E0062 /* Frameworks */,
+ 848E4DB116AA74920038C354 /* Other */,
848A2ED91684A0BB008E0062 /* Products */,
);
sourceTree = "<group>";
@@ -230,38 +219,19 @@
848A2EDB1684A0BB008E0062 /* Frameworks */ = {
isa = PBXGroup;
children = (
+ 84935F3716E5C74000166E23 /* CoreData.framework */,
+ 848E5A0F16C484F8005E3E92 /* SystemConfiguration.framework */,
+ 841E793E16A91ADA00480E01 /* CoreLocation.framework */,
+ 841E793B16A91AD200480E01 /* MapKit.framework */,
848A2EDC1684A0BB008E0062 /* UIKit.framework */,
848A2EDE1684A0BC008E0062 /* Foundation.framework */,
848A2EE01684A0BC008E0062 /* CoreGraphics.framework */,
+ 38727BE717CA4FAE85262720 /* libPods.a */,
+ 751EF9E85E404C82AA292A43 /* Pods.xcconfig */,
);
name = Frameworks;
sourceTree = "<group>";
};
- 848A2EE21684A0BC008E0062 /* FlickrExplorer */ = {
- isa = PBXGroup;
- children = (
- 848664D916E50A320076A364 /* Core Data */,
- 848800A616B4223300A5496D /* View Controllers */,
- 848A2EE31684A0BC008E0062 /* Supporting Files */,
- );
- path = FlickrExplorer;
- sourceTree = "<group>";
- };
- 848A2EE31684A0BC008E0062 /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- 848800A816B4227300A5496D /* Testing */,
- 848E4DAE16AA74500038C354 /* View Objects */,
- 848E4DAD16AA74420038C354 /* Data Objects */,
- 848E4DB016AA74750038C354 /* Utility Methods */,
- 8490C00216A57BA70001026A /* Split View Rotation */,
- 848E5E0016AA7CFA00840F97 /* UI */,
- 848E4DB116AA74920038C354 /* Other */,
- 848E4DB216AA749B0038C354 /* Images */,
- );
- name = "Supporting Files";
- sourceTree = "<group>";
- };
848A2F041684A141008E0062 /* FlickrFetcher */ = {
isa = PBXGroup;
children = (
@@ -282,15 +252,7 @@
848800AA16B422FE00A5496D /* FlickrPlaceAnnotation.m */,
);
name = "Data Objects";
- sourceTree = "<group>";
- };
- 848E4DAE16AA74500038C354 /* View Objects */ = {
- isa = PBXGroup;
- children = (
- 841E794016A91BC500480E01 /* TASpinner.h */,
- 841E794116A91BC500480E01 /* TASpinner.m */,
- );
- name = "View Objects";
+ path = FlickrExplorer;
sourceTree = "<group>";
};
848E4DB016AA74750038C354 /* Utility Methods */ = {
@@ -302,6 +264,7 @@
841E795016A9403900480E01 /* IOSupport.m */,
);
name = "Utility Methods";
+ path = FlickrExplorer;
sourceTree = "<group>";
};
848E4DB116AA74920038C354 /* Other */ = {
@@ -316,6 +279,7 @@
848A2EEA1684A0BC008E0062 /* FlickrExplorer-Prefix.pch */,
);
name = Other;
+ path = FlickrExplorer;
sourceTree = "<group>";
};
848E4DB216AA749B0038C354 /* Images */ = {
@@ -326,16 +290,17 @@
848A2EF21684A0BC008E0062 /* Default-568h@2x.png */,
);
name = Images;
+ path = FlickrExplorer;
sourceTree = "<group>";
};
848E5E0016AA7CFA00840F97 /* UI */ = {
isa = PBXGroup;
children = (
- 848A2EF71684A0BC008E0062 /* MainStoryboard_iPad.storyboard */,
- 848E5DFE16AA7CEB00840F97 /* Test_iPad.storyboard */,
- 848A2EF41684A0BC008E0062 /* MainStoryboard_iPhone.storyboard */,
+ 848E5DFE16AA7CEB00840F97 /* iPad.storyboard */,
+ 848A2EF41684A0BC008E0062 /* iPhone.storyboard */,
);
name = UI;
+ path = FlickrExplorer;
sourceTree = "<group>";
};
8490C00216A57BA70001026A /* Split View Rotation */ = {
@@ -361,6 +326,7 @@
848A2ED41684A0BB008E0062 /* Sources */,
848A2ED51684A0BB008E0062 /* Frameworks */,
848A2ED61684A0BB008E0062 /* Resources */,
+ 46818B5D30C74D3B9DA9D148 /* Copy Pods Resources */,
);
buildRules = (
);
@@ -407,15 +373,31 @@
848A2EEF1684A0BC008E0062 /* Default.png in Resources */,
848A2EF11684A0BC008E0062 /* Default@2x.png in Resources */,
848A2EF31684A0BC008E0062 /* Default-568h@2x.png in Resources */,
- 848A2EF61684A0BC008E0062 /* MainStoryboard_iPhone.storyboard in Resources */,
- 848A2EF91684A0BC008E0062 /* MainStoryboard_iPad.storyboard in Resources */,
+ 848A2EF61684A0BC008E0062 /* iPhone.storyboard in Resources */,
848A2F031684A0E2008E0062 /* README in Resources */,
- 848E5DFF16AA7CEB00840F97 /* Test_iPad.storyboard in Resources */,
+ 848E5DFF16AA7CEB00840F97 /* iPad.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
+/* Begin PBXShellScriptBuildPhase section */
+ 46818B5D30C74D3B9DA9D148 /* Copy Pods Resources */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ name = "Copy Pods Resources";
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${SRCROOT}/Pods/Pods-resources.sh\"\n";
+ };
+/* End PBXShellScriptBuildPhase section */
+
/* Begin PBXSourcesBuildPhase section */
848A2ED41684A0BB008E0062 /* Sources */ = {
isa = PBXSourcesBuildPhase;
@@ -430,17 +412,14 @@
848E28511685743400A84B40 /* FlickrPhotoViewController.m in Sources */,
848E285416858A2D00A84B40 /* RecentPhotosSelectorTableViewController.m in Sources */,
848E0D7F16A8E8FC005509B8 /* MapViewController.m in Sources */,
- 841E794216A91BC500480E01 /* TASpinner.m in Sources */,
841E795116A9403900480E01 /* IOSupport.m in Sources */,
841E795716A9844C00480E01 /* DetailViewController.m in Sources */,
848DB3B116AA8C9C004AA2EC /* RotatableViewController.m in Sources */,
8494481816AE29E6009C599C /* ViewControllerSupport.m in Sources */,
84906ACC16AFC03E0010C242 /* SegmentedViewController.m in Sources */,
- 848D4A8A16B2D077008F952B /* NSData+LogURLDownload.m in Sources */,
848800AB16B422FE00A5496D /* FlickrPlaceAnnotation.m in Sources */,
848800B216B4292D00A5496D /* FlickrPhotoAnnotation.m in Sources */,
84E2319216BCF424005CF3DF /* FlickrMapViewController.m in Sources */,
- 848E78A216C4019A001416E5 /* Reachability.m in Sources */,
84B1E14116E0631F00C1A84F /* VacationTableViewController.m in Sources */,
84B1E14516E0652000C1A84F /* TagsTableViewController.m in Sources */,
84B1E14816E0654400C1A84F /* ItineraryTableViewController.m in Sources */,
@@ -464,20 +443,12 @@
name = InfoPlist.strings;
sourceTree = "<group>";
};
- 848A2EF41684A0BC008E0062 /* MainStoryboard_iPhone.storyboard */ = {
+ 848A2EF41684A0BC008E0062 /* iPhone.storyboard */ = {
isa = PBXVariantGroup;
children = (
848A2EF51684A0BC008E0062 /* en */,
);
- name = MainStoryboard_iPhone.storyboard;
- sourceTree = "<group>";
- };
- 848A2EF71684A0BC008E0062 /* MainStoryboard_iPad.storyboard */ = {
- isa = PBXVariantGroup;
- children = (
- 848A2EF81684A0BC008E0062 /* en */,
- );
- name = MainStoryboard_iPad.storyboard;
+ name = iPhone.storyboard;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
@@ -537,6 +508,7 @@
};
848A2F001684A0BC008E0062 /* Debug */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = 751EF9E85E404C82AA292A43 /* Pods.xcconfig */;
buildSettings = {
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "FlickrExplorer/FlickrExplorer-Prefix.pch";
@@ -548,6 +520,7 @@
};
848A2F011684A0BC008E0062 /* Release */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = 751EF9E85E404C82AA292A43 /* Pods.xcconfig */;
buildSettings = {
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "FlickrExplorer/FlickrExplorer-Prefix.pch";
View
1  FlickrExplorer.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1 @@
+<?xml version='1.0' encoding='UTF-8'?><Workspace version='1.0'><FileRef location='group:Pods/Pods.xcodeproj'/><FileRef location='group:FlickrExplorer.xcodeproj'/></Workspace>
View
4 FlickrExplorer/FlickrExplorer-Info.plist
@@ -25,9 +25,9 @@
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIMainStoryboardFile</key>
- <string>MainStoryboard_iPhone</string>
+ <string>iPhone</string>
<key>UIMainStoryboardFile~ipad</key>
- <string>Test_iPad</string>
+ <string>iPad</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
View
13 FlickrExplorer/NSData+LogURLDownload.h
@@ -1,13 +0,0 @@
-//
-// NSData+LogURLDownload.h
-// FlickrExplorer
-//
-// Created by admin on 25/J/13.
-// Copyright (c) 2013 ThoughtAdvances. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-
-@interface NSData (LogURLDownload)
-+ (id)LogDataWithContentsOfURL:(NSURL *)aURL;
-@end
View
31 FlickrExplorer/NSData+LogURLDownload.m
@@ -1,31 +0,0 @@
-//
-// NSData+LogURLDownload.m
-// FlickrExplorer
-//
-// Created by admin on 25/J/13.
-// Copyright (c) 2013 ThoughtAdvances. All rights reserved.
-//
-
-#import "NSData+LogURLDownload.h"
-#import <Foundation/NSObjCRuntime.h>
-#import <objc/runtime.h>
-#import </usr/include/objc/objc-class.h>
-
-@implementation NSData (LogURLDownload)
-
-// TODO: Create a method that takes two selectors and swizzles them
-+ (void)load {
- Method dataWithContentsOfURL =
- class_getClassMethod(self, @selector(dataWithContentsOfURL:));
- Method logDataWithContentsOfURL =
- class_getClassMethod(self, @selector(logDataWithContentsOfURL:));
- method_exchangeImplementations(dataWithContentsOfURL,
- logDataWithContentsOfURL);
-
-}
-
-+ (id)LogDataWithContentsOfURL:(NSURL *)aURL {
- NSLog(@"[NSData dataWithContentsOfURL:] called");
- return [self LogDataWithContentsOfURL:aURL];
-}
-@end
View
102 FlickrExplorer/Reachability.h
@@ -1,102 +0,0 @@
-/*
- Copyright (c) 2011, Tony Million.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
- */
-
-#import <Foundation/Foundation.h>
-#import <SystemConfiguration/SystemConfiguration.h>
-
-#import <sys/socket.h>
-#import <netinet/in.h>
-#import <netinet6/in6.h>
-#import <arpa/inet.h>
-#import <ifaddrs.h>
-#import <netdb.h>
-
-/**
- * Does ARC support support GCD objects?
- * It does if the minimum deployment target is iOS 6+ or Mac OS X 8+
- *
- * @see http://opensource.apple.com/source/libdispatch/libdispatch-228.18/os/object.h
- **/
-#if OS_OBJECT_USE_OBJC
-#define NEEDS_DISPATCH_RETAIN_RELEASE 0
-#else
-#define NEEDS_DISPATCH_RETAIN_RELEASE 1
-#endif
-
-
-extern NSString *const kReachabilityChangedNotification;
-
-typedef enum
-{
- // Apple NetworkStatus Compatible Names.
- NotReachable = 0,
- ReachableViaWiFi = 2,
- ReachableViaWWAN = 1
-} NetworkStatus;
-
-@class Reachability;
-
-typedef void (^NetworkReachable)(Reachability * reachability);
-typedef void (^NetworkUnreachable)(Reachability * reachability);
-
-@interface Reachability : NSObject
-
-@property (nonatomic, copy) NetworkReachable reachableBlock;
-@property (nonatomic, copy) NetworkUnreachable unreachableBlock;
-
-
-@property (nonatomic, assign) BOOL reachableOnWWAN;
-
-+(Reachability*)reachabilityWithHostname:(NSString*)hostname;
-+(Reachability*)reachabilityForInternetConnection;
-+(Reachability*)reachabilityWithAddress:(const struct sockaddr_in*)hostAddress;
-+(Reachability*)reachabilityForLocalWiFi;
-
--(Reachability *)initWithReachabilityRef:(SCNetworkReachabilityRef)ref;
-
--(BOOL)startNotifier;
--(void)stopNotifier;
-
--(BOOL)isReachable;
--(BOOL)isReachableViaWWAN;
--(BOOL)isReachableViaWiFi;
-
-// WWAN may be available, but not active until a connection has been established.
-// WiFi may require a connection for VPN on Demand.
--(BOOL)isConnectionRequired; // Identical DDG variant.
--(BOOL)connectionRequired; // Apple's routine.
-// Dynamic, on demand connection?
--(BOOL)isConnectionOnDemand;
-// Is user intervention required?
--(BOOL)isInterventionRequired;
-
--(NetworkStatus)currentReachabilityStatus;
--(SCNetworkReachabilityFlags)reachabilityFlags;
--(NSString*)currentReachabilityString;
--(NSString*)currentReachabilityFlags;
-
-@end
View
521 FlickrExplorer/Reachability.m
@@ -1,521 +0,0 @@
-/*
- Copyright (c) 2011, Tony Million.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
- */
-
-#import "Reachability.h"
-
-
-NSString *const kReachabilityChangedNotification = @"kReachabilityChangedNotification";
-
-@interface Reachability ()
-
-@property (nonatomic, assign) SCNetworkReachabilityRef reachabilityRef;
-
-
-#if NEEDS_DISPATCH_RETAIN_RELEASE
-@property (nonatomic, assign) dispatch_queue_t reachabilitySerialQueue;
-#else
-@property (nonatomic, strong) dispatch_queue_t reachabilitySerialQueue;
-#endif
-
-
-@property (nonatomic, strong) id reachabilityObject;
-
--(void)reachabilityChanged:(SCNetworkReachabilityFlags)flags;
--(BOOL)isReachableWithFlags:(SCNetworkReachabilityFlags)flags;
-
-@end
-
-static NSString *reachabilityFlags(SCNetworkReachabilityFlags flags)
-{
- return [NSString stringWithFormat:@"%c%c %c%c%c%c%c%c%c",
-#if TARGET_OS_IPHONE
- (flags & kSCNetworkReachabilityFlagsIsWWAN) ? 'W' : '-',
-#else
- 'X',
-#endif
- (flags & kSCNetworkReachabilityFlagsReachable) ? 'R' : '-',
- (flags & kSCNetworkReachabilityFlagsConnectionRequired) ? 'c' : '-',
- (flags & kSCNetworkReachabilityFlagsTransientConnection) ? 't' : '-',
- (flags & kSCNetworkReachabilityFlagsInterventionRequired) ? 'i' : '-',
- (flags & kSCNetworkReachabilityFlagsConnectionOnTraffic) ? 'C' : '-',
- (flags & kSCNetworkReachabilityFlagsConnectionOnDemand) ? 'D' : '-',
- (flags & kSCNetworkReachabilityFlagsIsLocalAddress) ? 'l' : '-',
- (flags & kSCNetworkReachabilityFlagsIsDirect) ? 'd' : '-'];
-}
-
-//Start listening for reachability notifications on the current run loop
-static void TMReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void* info)
-{
-#pragma unused (target)
-#if __has_feature(objc_arc)
- Reachability *reachability = ((__bridge Reachability*)info);
-#else
- Reachability *reachability = ((Reachability*)info);
-#endif
-
- // we probably dont need an autoreleasepool here as GCD docs state each queue has its own autorelease pool
- // but what the heck eh?
- @autoreleasepool
- {
- [reachability reachabilityChanged:flags];
- }
-}
-
-
-@implementation Reachability
-
-@synthesize reachabilityRef;
-@synthesize reachabilitySerialQueue;
-
-@synthesize reachableOnWWAN;
-
-@synthesize reachableBlock;
-@synthesize unreachableBlock;
-
-@synthesize reachabilityObject;
-
-#pragma mark - class constructor methods
-+(Reachability*)reachabilityWithHostname:(NSString*)hostname
-{
- SCNetworkReachabilityRef ref = SCNetworkReachabilityCreateWithName(NULL, [hostname UTF8String]);
- if (ref)
- {
- id reachability = [[self alloc] initWithReachabilityRef:ref];
-
-#if __has_feature(objc_arc)
- return reachability;
-#else
- return [reachability autorelease];
-#endif
-
- }
-
- return nil;
-}
-
-+(Reachability *)reachabilityWithAddress:(const struct sockaddr_in *)hostAddress
-{
- SCNetworkReachabilityRef ref = SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr*)hostAddress);
- if (ref)
- {
- id reachability = [[self alloc] initWithReachabilityRef:ref];
-
-#if __has_feature(objc_arc)
- return reachability;
-#else
- return [reachability autorelease];
-#endif
- }
-
- return nil;
-}
-
-+(Reachability *)reachabilityForInternetConnection
-{
- struct sockaddr_in zeroAddress;
- bzero(&zeroAddress, sizeof(zeroAddress));
- zeroAddress.sin_len = sizeof(zeroAddress);
- zeroAddress.sin_family = AF_INET;
-
- return [self reachabilityWithAddress:&zeroAddress];
-}
-
-+(Reachability*)reachabilityForLocalWiFi
-{
- struct sockaddr_in localWifiAddress;
- bzero(&localWifiAddress, sizeof(localWifiAddress));
- localWifiAddress.sin_len = sizeof(localWifiAddress);
- localWifiAddress.sin_family = AF_INET;
- // IN_LINKLOCALNETNUM is defined in <netinet/in.h> as 169.254.0.0
- localWifiAddress.sin_addr.s_addr = htonl(IN_LINKLOCALNETNUM);
-
- return [self reachabilityWithAddress:&localWifiAddress];
-}
-
-
-// initialization methods
-
--(Reachability *)initWithReachabilityRef:(SCNetworkReachabilityRef)ref
-{
- self = [super init];
- if (self != nil)
- {
- self.reachableOnWWAN = YES;
- self.reachabilityRef = ref;
- }
-
- return self;
-}
-
--(void)dealloc
-{
- [self stopNotifier];
-
- if(self.reachabilityRef)
- {
- CFRelease(self.reachabilityRef);
- self.reachabilityRef = nil;
- }
-
- self.reachableBlock = nil;
- self.unreachableBlock = nil;
-
-#if !(__has_feature(objc_arc))
- [super dealloc];
-#endif
-
-
-}
-
-#pragma mark - notifier methods
-
-// Notifier
-// NOTE: this uses GCD to trigger the blocks - they *WILL NOT* be called on THE MAIN THREAD
-// - In other words DO NOT DO ANY UI UPDATES IN THE BLOCKS.
-// INSTEAD USE dispatch_async(dispatch_get_main_queue(), ^{UISTUFF}) (or dispatch_sync if you want)
-
--(BOOL)startNotifier
-{
- SCNetworkReachabilityContext context = { 0, NULL, NULL, NULL, NULL };
-
- // this should do a retain on ourself, so as long as we're in notifier mode we shouldn't disappear out from under ourselves
- // woah
- self.reachabilityObject = self;
-
-
-
- // first we need to create a serial queue
- // we allocate this once for the lifetime of the notifier
- self.reachabilitySerialQueue = dispatch_queue_create("com.tonymillion.reachability", NULL);
- if(!self.reachabilitySerialQueue)
- {
- return NO;
- }
-
-#if __has_feature(objc_arc)
- context.info = (__bridge void *)self;
-#else
- context.info = (void *)self;
-#endif
-
- if (!SCNetworkReachabilitySetCallback(self.reachabilityRef, TMReachabilityCallback, &context))
- {
-#ifdef DEBUG
- NSLog(@"SCNetworkReachabilitySetCallback() failed: %s", SCErrorString(SCError()));
-#endif
-
- //clear out the dispatch queue
- if(self.reachabilitySerialQueue)
- {
-#if NEEDS_DISPATCH_RETAIN_RELEASE
- dispatch_release(self.reachabilitySerialQueue);
-#endif
- self.reachabilitySerialQueue = nil;
- }
-
- self.reachabilityObject = nil;
-
- return NO;
- }
-
- // set it as our reachability queue which will retain the queue
- if(!SCNetworkReachabilitySetDispatchQueue(self.reachabilityRef, self.reachabilitySerialQueue))
- {
-#ifdef DEBUG
- NSLog(@"SCNetworkReachabilitySetDispatchQueue() failed: %s", SCErrorString(SCError()));
-#endif
-
- //UH OH - FAILURE!
-
- // first stop any callbacks!
- SCNetworkReachabilitySetCallback(self.reachabilityRef, NULL, NULL);
-
- // then clear out the dispatch queue
- if(self.reachabilitySerialQueue)
- {
-#if NEEDS_DISPATCH_RETAIN_RELEASE
- dispatch_release(self.reachabilitySerialQueue);
-#endif
- self.reachabilitySerialQueue = nil;
- }
-
- self.reachabilityObject = nil;
-
- return NO;
- }
-
- return YES;
-}
-
--(void)stopNotifier
-{
- // first stop any callbacks!
- SCNetworkReachabilitySetCallback(self.reachabilityRef, NULL, NULL);
-
- // unregister target from the GCD serial dispatch queue
- SCNetworkReachabilitySetDispatchQueue(self.reachabilityRef, NULL);
-
- if(self.reachabilitySerialQueue)
- {
-#if NEEDS_DISPATCH_RETAIN_RELEASE
- dispatch_release(self.reachabilitySerialQueue);
-#endif
- self.reachabilitySerialQueue = nil;
- }
-
- self.reachabilityObject = nil;
-}
-
-#pragma mark - reachability tests
-
-// this is for the case where you flick the airplane mode
-// you end up getting something like this:
-//Reachability: WR ct-----
-//Reachability: -- -------
-//Reachability: WR ct-----
-//Reachability: -- -------
-// we treat this as 4 UNREACHABLE triggers - really apple should do better than this
-
-#define testcase (kSCNetworkReachabilityFlagsConnectionRequired | kSCNetworkReachabilityFlagsTransientConnection)
-
--(BOOL)isReachableWithFlags:(SCNetworkReachabilityFlags)flags
-{
- BOOL connectionUP = YES;
-
- if(!(flags & kSCNetworkReachabilityFlagsReachable))
- connectionUP = NO;
-
- if( (flags & testcase) == testcase )
- connectionUP = NO;
-
-#if TARGET_OS_IPHONE
- if(flags & kSCNetworkReachabilityFlagsIsWWAN)
- {
- // we're on 3G
- if(!self.reachableOnWWAN)
- {
- // we dont want to connect when on 3G
- connectionUP = NO;
- }
- }
-#endif
-
- return connectionUP;
-}
-
--(BOOL)isReachable
-{
- SCNetworkReachabilityFlags flags;
-
- if(!SCNetworkReachabilityGetFlags(self.reachabilityRef, &flags))
- return NO;
-
- return [self isReachableWithFlags:flags];
-}
-
--(BOOL)isReachableViaWWAN
-{
-#if TARGET_OS_IPHONE
-
- SCNetworkReachabilityFlags flags = 0;
-
- if(SCNetworkReachabilityGetFlags(reachabilityRef, &flags))
- {
- // check we're REACHABLE
- if(flags & kSCNetworkReachabilityFlagsReachable)
- {
- // now, check we're on WWAN
- if(flags & kSCNetworkReachabilityFlagsIsWWAN)
- {
- return YES;
- }
- }
- }
-#endif
-
- return NO;
-}
-
--(BOOL)isReachableViaWiFi
-{
- SCNetworkReachabilityFlags flags = 0;
-
- if(SCNetworkReachabilityGetFlags(reachabilityRef, &flags))
- {
- // check we're reachable
- if((flags & kSCNetworkReachabilityFlagsReachable))
- {
-#if TARGET_OS_IPHONE
- // check we're NOT on WWAN
- if((flags & kSCNetworkReachabilityFlagsIsWWAN))
- {
- return NO;
- }
-#endif
- return YES;
- }
- }
-
- return NO;
-}
-
-
-// WWAN may be available, but not active until a connection has been established.
-// WiFi may require a connection for VPN on Demand.
--(BOOL)isConnectionRequired
-{
- return [self connectionRequired];
-}
-
--(BOOL)connectionRequired
-{
- SCNetworkReachabilityFlags flags;
-
- if(SCNetworkReachabilityGetFlags(reachabilityRef, &flags))
- {
- return (flags & kSCNetworkReachabilityFlagsConnectionRequired);
- }
-
- return NO;
-}
-
-// Dynamic, on demand connection?
--(BOOL)isConnectionOnDemand
-{
- SCNetworkReachabilityFlags flags;
-
- if (SCNetworkReachabilityGetFlags(reachabilityRef, &flags))
- {
- return ((flags & kSCNetworkReachabilityFlagsConnectionRequired) &&
- (flags & (kSCNetworkReachabilityFlagsConnectionOnTraffic | kSCNetworkReachabilityFlagsConnectionOnDemand)));
- }
-
- return NO;
-}
-
-// Is user intervention required?
--(BOOL)isInterventionRequired
-{
- SCNetworkReachabilityFlags flags;
-
- if (SCNetworkReachabilityGetFlags(reachabilityRef, &flags))
- {
- return ((flags & kSCNetworkReachabilityFlagsConnectionRequired) &&
- (flags & kSCNetworkReachabilityFlagsInterventionRequired));
- }
-
- return NO;
-}
-
-
-#pragma mark - reachability status stuff
-
--(NetworkStatus)currentReachabilityStatus
-{
- if([self isReachable])
- {
- if([self isReachableViaWiFi])
- return ReachableViaWiFi;
-
-#if TARGET_OS_IPHONE
- return ReachableViaWWAN;
-#endif
- }
-
- return NotReachable;
-}
-
--(SCNetworkReachabilityFlags)reachabilityFlags
-{
- SCNetworkReachabilityFlags flags = 0;
-
- if(SCNetworkReachabilityGetFlags(reachabilityRef, &flags))
- {
- return flags;
- }
-
- return 0;
-}
-
--(NSString*)currentReachabilityString
-{
- NetworkStatus temp = [self currentReachabilityStatus];
-
- if(temp == reachableOnWWAN)
- {
- // updated for the fact we have CDMA phones now!
- return NSLocalizedString(@"Cellular", @"");
- }
- if (temp == ReachableViaWiFi)
- {
- return NSLocalizedString(@"WiFi", @"");
- }
-
- return NSLocalizedString(@"No Connection", @"");
-}
-
--(NSString*)currentReachabilityFlags
-{
- return reachabilityFlags([self reachabilityFlags]);
-}
-
-#pragma mark - callback function calls this method
-
--(void)reachabilityChanged:(SCNetworkReachabilityFlags)flags
-{
- if([self isReachableWithFlags:flags])
- {
- if(self.reachableBlock)
- {
- self.reachableBlock(self);
- }
- }
- else
- {
- if(self.unreachableBlock)
- {
- self.unreachableBlock(self);
- }
- }
-
- // this makes sure the change notification happens on the MAIN THREAD
- dispatch_async(dispatch_get_main_queue(), ^{
- [[NSNotificationCenter defaultCenter] postNotificationName:kReachabilityChangedNotification
- object:self];
- });
-}
-
-#pragma mark - Debug Description
-
-- (NSString *) description;
-{
- NSString *description = [NSString stringWithFormat:@"<%@: %#x>",
- NSStringFromClass([self class]), (unsigned int) self];
- return description;
-}
-
-@end
View
22 FlickrExplorer/TASpinner.h
@@ -1,22 +0,0 @@
-//
-// TASpinner.h
-// FlickrExplorer
-//
-// Created by admin on 18/J/13.
-// Copyright (c) 2013 ThoughtAdvances. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-
-@class TASpinner;
-
-//@protocol TASpinnerDelegate <NSObject>
-//@property (weak, nonatomic) IBOutlet UIActivityIndicatorView *spinner;
-//@end
-
-@interface TASpinner : NSObject
-+ (void)concurrentlyExecute:(void(^)(void))concurrentBlock
- afterwardsExecuteInMain:(void(^)(void))mainBlock
- onSender:(id)sender;
-//@property (nonatomic, weak) id <TASpinnerDelegate> delegate;
-@end
View
35 FlickrExplorer/TASpinner.m
@@ -1,35 +0,0 @@
-//
-// TASpinner.m
-// FlickrExplorer
-//
-// Created by admin on 18/J/13.
-// Copyright (c) 2013 ThoughtAdvances. All rights reserved.
-//
-
-#import "TASpinner.h"
-
-@implementation TASpinner
-
-// TODO: Metaprogram it so that it replaces all instances of `self` with
-// `sender`
-// TODO: Is there any way to enforce that something calling this method has
-// an object spinner?
-// TODO: Force it to assume that sender has a spinner @property?
-
-+ (void)concurrentlyExecute:(void (^)(void))concurrentBlock
- afterwardsExecuteInMain:(void (^)(void))mainBlock
- onSender:(id)sender {
-// if (sender.spinner) [sender.spinner startAnimating];
- dispatch_queue_t downloadQueue = dispatch_queue_create("downloader",
- NULL);
- dispatch_async(downloadQueue, ^{
- concurrentBlock();
- dispatch_async(dispatch_get_main_queue(), ^{
- mainBlock();
-// if (sender.spinner) [sender.spinner stopAnimating];
- });
- });
-
-}
-
-@end
View
323 FlickrExplorer/en.lproj/MainStoryboard_iPad.storyboard
@@ -1,323 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="2844" systemVersion="12C3012" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" initialViewController="aun-zf-TTO">
- <dependencies>
- <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="1930"/>
- </dependencies>
- <scenes>
- <!--Split View Controller-->
- <scene sceneID="tQi-pc-rtD">
- <objects>
- <splitViewController id="aun-zf-TTO" sceneMemberID="viewController">
- <toolbarItems/>
- <connections>
- <segue destination="mML-Pn-ZPX" kind="relationship" relationship="masterViewController" id="4MR-hi-RDc"/>
- <segue destination="tcZ-b8-8oW" kind="relationship" relationship="detailViewController" id="GSd-LN-Yyp"/>
- </connections>
- </splitViewController>
- <placeholder placeholderIdentifier="IBFirstResponder" id="oAo-KA-6W4" userLabel="First Responder" sceneMemberID="firstResponder"/>
- </objects>
- <point key="canvasLocation" x="1209" y="744"/>
- </scene>
- <!--Rotatable View Controller-->
- <scene sceneID="vZQ-Sy-bjw">
- <objects>
- <tabBarController id="mML-Pn-ZPX" customClass="RotatableViewController" sceneMemberID="viewController">
- <toolbarItems/>
- <navigationItem key="navigationItem" id="vPL-Rg-ZUQ"/>
- <nil key="simulatedBottomBarMetrics"/>
- <tabBar key="tabBar" contentMode="scaleToFill" id="A7U-3z-YVz">
- <autoresizingMask key="autoresizingMask"/>
- <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
- </tabBar>
- <connections>
- <segue destination="x7W-m5-W5e" kind="relationship" relationship="viewControllers" id="xJH-ly-5fO"/>
- <segue destination="cbO-lb-HND" kind="relationship" relationship="viewControllers" id="s7d-jp-JKa"/>
- </connections>
- </tabBarController>
- <placeholder placeholderIdentifier="IBFirstResponder" id="Dzs-O0-0Wk" userLabel="First Responder" sceneMemberID="firstResponder"/>
- </objects>
- <point key="canvasLocation" x="2189" y="256"/>
- </scene>
- <!--Flickr Top Places Table View Controller - Top Places-->
- <scene sceneID="wyr-of-DU1">
- <objects>
- <tableViewController clearsSelectionOnViewWillAppear="NO" id="gsu-pR-Pf6" customClass="FlickrTopPlacesTableViewController" sceneMemberID="viewController">
- <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="FBN-4y-2fs">
- <rect key="frame" x="0.0" y="64" width="320" height="739"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
- <prototypes>
- <tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="Place" textLabel="Rnq-1w-Xf0" detailTextLabel="Gk6-bH-bPz" style="IBUITableViewCellStyleSubtitle" id="NoU-Qk-nrV">
- <rect key="frame" x="0.0" y="22" width="320" height="44"/>
- <autoresizingMask key="autoresizingMask"/>
- <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
- <rect key="frame" x="0.0" y="0.0" width="300" height="43"/>
- <autoresizingMask key="autoresizingMask"/>
- <subviews>
- <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Specific Location" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Rnq-1w-Xf0">
- <rect key="frame" x="10" y="2" width="150" height="22"/>
- <autoresizingMask key="autoresizingMask"/>
- <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
- <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
- <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
- </label>
- <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="General Location" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Gk6-bH-bPz">
- <rect key="frame" x="10" y="24" width="107" height="18"/>
- <autoresizingMask key="autoresizingMask"/>
- <fontDescription key="fontDescription" type="system" pointSize="14"/>
- <color key="textColor" red="0.50196078431372548" green="0.50196078431372548" blue="0.50196078431372548" alpha="1" colorSpace="calibratedRGB"/>
- <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
- </label>
- </subviews>
- <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
- </view>
- </tableViewCell>
- </prototypes>
- <connections>
- <outlet property="dataSource" destination="gsu-pR-Pf6" id="HHk-JF-D1d"/>
- <outlet property="delegate" destination="gsu-pR-Pf6" id="xyK-2H-LBz"/>
- </connections>
- </tableView>
- <navigationItem key="navigationItem" title="Top Places" id="Pcw-jm-kAd"/>
- <connections>
- <segue destination="Ucc-lJ-HDU" kind="push" identifier="PlacePhotos" id="OFl-kh-ued"/>
- </connections>
- </tableViewController>
- <placeholder placeholderIdentifier="IBFirstResponder" id="xda-Rd-Pry" userLabel="First Responder" sceneMemberID="firstResponder"/>
- </objects>
- <point key="canvasLocation" x="3112" y="-472"/>
- </scene>
- <!--Flickr Photo Selector Table View Controller - Photo Selector-->
- <scene sceneID="tGg-Wt-gpe">
- <objects>
- <tableViewController id="Ucc-lJ-HDU" customClass="FlickrPhotoSelectorTableViewController" sceneMemberID="viewController">
- <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="244-8n-5Mf">
- <rect key="frame" x="0.0" y="64" width="320" height="739"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
- <prototypes>
- <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="Photo" textLabel="rB9-Lw-Aut" detailTextLabel="dZr-TU-3BP" style="IBUITableViewCellStyleSubtitle" id="tnG-AE-B8h">
- <rect key="frame" x="0.0" y="22" width="320" height="44"/>
- <autoresizingMask key="autoresizingMask"/>
- <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
- <rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
- <autoresizingMask key="autoresizingMask"/>
- <subviews>
- <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Photo Title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="rB9-Lw-Aut">
- <rect key="frame" x="10" y="2" width="93" height="22"/>
- <autoresizingMask key="autoresizingMask"/>
- <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
- <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
- <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
- </label>
- <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Photo Description" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="dZr-TU-3BP">
- <rect key="frame" x="10" y="24" width="111" height="18"/>
- <autoresizingMask key="autoresizingMask"/>
- <fontDescription key="fontDescription" type="system" pointSize="14"/>
- <color key="textColor" red="0.50196078431372548" green="0.50196078431372548" blue="0.50196078431372548" alpha="1" colorSpace="calibratedRGB"/>
- <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
- </label>
- </subviews>
- <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
- </view>
- </tableViewCell>
- </prototypes>
- <connections>
- <outlet property="dataSource" destination="Ucc-lJ-HDU" id="6sR-pJ-TNv"/>
- <outlet property="delegate" destination="Ucc-lJ-HDU" id="3W9-lR-7IH"/>
- </connections>
- </tableView>
- <tabBarItem key="tabBarItem" title="Recent Photos" id="ELU-ai-fzc"/>
- <navigationItem key="navigationItem" title="Photo Selector" id="WWO-N3-h1j"/>
- </tableViewController>
- <placeholder placeholderIdentifier="IBFirstResponder" id="6TF-oq-uma" userLabel="First Responder" sceneMemberID="firstResponder"/>
- </objects>
- <point key="canvasLocation" x="3564" y="-472"/>
- </scene>
- <!--Recent Photos Selector Table View Controller - Photo Selector-->
- <scene sceneID="0k0-zN-Ja3">
- <objects>
- <tableViewController id="5kD-FL-cQr" customClass="RecentPhotosSelectorTableViewController" sceneMemberID="viewController">
- <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="hKi-4j-ocY">
- <rect key="frame" x="0.0" y="64" width="320" height="739"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
- <prototypes>
- <tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="Photo" textLabel="c65-Tv-9Qe" detailTextLabel="0Lk-yT-dPR" style="IBUITableViewCellStyleSubtitle" id="8ja-8k-gtw">
- <rect key="frame" x="0.0" y="22" width="320" height="44"/>
- <autoresizingMask key="autoresizingMask"/>
- <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
- <rect key="frame" x="0.0" y="0.0" width="300" height="43"/>
- <autoresizingMask key="autoresizingMask"/>
- <subviews>
- <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Photo Title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="c65-Tv-9Qe">
- <rect key="frame" x="10" y="2" width="93" height="22"/>
- <autoresizingMask key="autoresizingMask"/>
- <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
- <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
- <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
- </label>
- <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Photo Description" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="0Lk-yT-dPR">
- <rect key="frame" x="10" y="24" width="111" height="18"/>
- <autoresizingMask key="autoresizingMask"/>
- <fontDescription key="fontDescription" type="system" pointSize="14"/>
- <color key="textColor" red="0.50196078430000002" green="0.50196078430000002" blue="0.50196078430000002" alpha="1" colorSpace="calibratedRGB"/>
- <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
- </label>
- </subviews>
- <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
- </view>
- </tableViewCell>
- </prototypes>
- <connections>
- <outlet property="dataSource" destination="5kD-FL-cQr" id="BLz-Gv-x64"/>
- <outlet property="delegate" destination="5kD-FL-cQr" id="Y17-oA-X66"/>
- </connections>
- </tableView>
- <navigationItem key="navigationItem" title="Photo Selector" id="e8w-Ek-JML"/>
- </tableViewController>
- <placeholder placeholderIdentifier="IBFirstResponder" id="4GI-we-dds" userLabel="First Responder" sceneMemberID="firstResponder"/>
- </objects>
- <point key="canvasLocation" x="3112" y="472"/>
- </scene>
- <!--Flickr Photo View Controller-->
- <scene sceneID="dsz-Vs-lyu">
- <objects>
- <viewController id="pYn-cs-pZT" customClass="FlickrPhotoViewController" sceneMemberID="viewController">
- <view key="view" contentMode="scaleToFill" id="VcO-hE-aSI">
- <rect key="frame" x="0.0" y="64" width="768" height="960"/>
- <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
- <subviews>
- <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="HkP-FT-WUv">
- <rect key="frame" x="1" y="-46" width="768" height="44"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
- <items/>
- </toolbar>
- <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" minimumZoomScale="0.20000000000000001" maximumZoomScale="3" id="MJ0-zQ-Kmk">
- <rect key="frame" x="-20" y="0.0" width="788" height="1236"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <imageView userInteractionEnabled="NO" contentMode="scaleToFill" id="LMn-Wn-Akz">
- <rect key="frame" x="20" y="0.0" width="768" height="964"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- </imageView>
- <activityIndicatorView opaque="NO" contentMode="scaleToFill" style="whiteLarge" id="B87-Vk-es1">
- <rect key="frame" x="376" y="505" width="37" height="37"/>
- <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
- </activityIndicatorView>
- </subviews>
- </scrollView>
- </subviews>
- <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
- </view>
- <navigationItem key="navigationItem" id="i9E-jU-SEB"/>
- <connections>
- <outlet property="imageView" destination="LMn-Wn-Akz" id="F9c-Cg-pn7"/>
- <outlet property="scrollView" destination="MJ0-zQ-Kmk" id="K2H-dm-TFc"/>
- <outlet property="spinner" destination="B87-Vk-es1" id="H8Q-yu-vy7"/>
- <outlet property="toolbar" destination="HkP-FT-WUv" id="lQ6-2x-0ES"/>
- </connections>
- </viewController>
- <placeholder placeholderIdentifier="IBFirstResponder" id="tty-vh-zd4" userLabel="First Responder" sceneMemberID="firstResponder"/>
- </objects>
- <point key="canvasLocation" x="4167" y="1473"/>
- </scene>
- <!--Map View Controller-->
- <scene sceneID="FbK-L8-JtO">
- <objects>
- <viewController id="cuO-b1-rEr" customClass="MapViewController" sceneMemberID="viewController">
- <view key="view" contentMode="scaleToFill" id="ftY-Xs-IRw">
- <rect key="frame" x="0.0" y="64" width="768" height="960"/>
- <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
- <subviews>
- <mapView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" mapType="standard" id="oJy-Gz-uFE">
- <rect key="frame" x="0.0" y="0.0" width="768" height="960"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- </mapView>
- <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" id="erJ-2U-DNK">
- <rect key="frame" x="267" y="848" width="235" height="44"/>
- <autoresizingMask key="autoresizingMask"/>
- <segments>
- <segment title="Normal"/>
- <segment title="Satellite"/>
- <segment title="Hybrid"/>
- </segments>
- </segmentedControl>
- </subviews>
- <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
- </view>
- <navigationItem key="navigationItem" id="rCU-TE-AOD"/>
- <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackTranslucent"/>
- <connections>
- <outlet property="mapTypeSelector" destination="erJ-2U-DNK" id="Mzo-26-TVo"/>
- <outlet property="mapView" destination="oJy-Gz-uFE" id="RZI-rB-66A"/>
- <segue destination="pYn-cs-pZT" kind="push" identifier="showTablePhoto" id="ksy-ZN-3vy"/>
- </connections>
- </viewController>
- <placeholder placeholderIdentifier="IBFirstResponder" id="Kw6-x6-SS2" userLabel="First Responder" sceneMemberID="firstResponder"/>
- </objects>
- <point key="canvasLocation" x="3135" y="1473"/>
- </scene>
- <!--Detail View Controller-->
- <scene sceneID="p3S-1W-brj">
- <objects>
- <navigationController id="tcZ-b8-8oW" customClass="DetailViewController" sceneMemberID="viewController">
- <toolbarItems/>
- <navigationBar key="navigationBar" contentMode="scaleToFill" id="Lbu-hm-Jo3">
- <rect key="frame" x="0.0" y="0.0" width="768" height="44"/>
- <autoresizingMask key="autoresizingMask"/>
- </navigationBar>
- <nil name="viewControllers"/>
- <connections>
- <segue destination="cuO-b1-rEr" kind="relationship" relationship="rootViewController" id="TSw-4c-2qc"/>
- </connections>
- </navigationController>
- <placeholder placeholderIdentifier="IBFirstResponder" id="UvZ-fk-1aF" userLabel="First Responder" sceneMemberID="firstResponder"/>
- </objects>
- <point key="canvasLocation" x="2189" y="1473"/>
- </scene>
- <!--Navigation Controller - Top Places-->
- <scene sceneID="EI6-oW-Ix3">
- <objects>
- <navigationController id="x7W-m5-W5e" sceneMemberID="viewController">
- <tabBarItem key="tabBarItem" title="Top Places" id="Jjl-3h-QPT"/>
- <toolbarItems/>
- <navigationBar key="navigationBar" contentMode="scaleToFill" id="KGq-NA-O5N">
- <rect key="frame" x="0.0" y="0.0" width="768" height="44"/>
- <autoresizingMask key="autoresizingMask"/>
- </navigationBar>
- <nil name="viewControllers"/>
- <connections>
- <segue destination="gsu-pR-Pf6" kind="relationship" relationship="rootViewController" id="MYQ-fZ-T7o"/>
- </connections>
- </navigationController>
- <placeholder placeholderIdentifier="IBFirstResponder" id="Crc-Pq-dfp" userLabel="First Responder" sceneMemberID="firstResponder"/>
- </objects>
- <point key="canvasLocation" x="2682" y="-472"/>
- </scene>
- <!--Navigation Controller - Recent Photos-->
- <scene sceneID="z1t-6x-XEr">
- <objects>
- <navigationController id="cbO-lb-HND" sceneMemberID="viewController">
- <tabBarItem key="tabBarItem" title="Recent Photos" id="Dz2-hV-oAb"/>
- <toolbarItems/>
- <navigationBar key="navigationBar" contentMode="scaleToFill" id="POh-ra-iIz">
- <rect key="frame" x="0.0" y="0.0" width="768" height="44"/>
- <autoresizingMask key="autoresizingMask"/>
- </navigationBar>
- <nil name="viewControllers"/>
- <connections>
- <segue destination="5kD-FL-cQr" kind="relationship" relationship="rootViewController" id="W5i-6j-iL8"/>
- </connections>
- </navigationController>
- <placeholder placeholderIdentifier="IBFirstResponder" id="jsF-wf-406" userLabel="First Responder" sceneMemberID="firstResponder"/>
- </objects>
- <point key="canvasLocation" x="2682" y="472"/>
- </scene>
- </scenes>
- <simulatedMetricsContainer key="defaultSimulatedMetrics">
- <simulatedStatusBarMetrics key="statusBar" statusBarStyle="blackTranslucent"/>
- <simulatedOrientationMetrics key="orientation"/>
- <simulatedScreenMetrics key="destination"/>
- </simulatedMetricsContainer>
-</document>
View
12 ...en.lproj/MainStoryboard_iPhone.storyboard → FlickrExplorer/en.lproj/iPhone.storyboard
@@ -181,15 +181,15 @@
<objects>
<viewController id="4Wd-Zq-qDW" customClass="FlickrPhotoViewController" sceneMemberID="viewController">
<view key="view" contentMode="redraw" id="fXn-MB-VFw">
- <rect key="frame" x="0.0" y="64" width="320" height="455"/>
+ <rect key="frame" x="0.0" y="20" width="320" height="548"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="redraw" minimumZoomScale="0.20000000000000001" maximumZoomScale="2" id="Yb2-Ur-wD7">
- <rect key="frame" x="0.0" y="0.0" width="320" height="455"/>
+ <rect key="frame" x="0.0" y="0.0" width="320" height="548"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="TopLeft" id="hdb-hc-zQb">
- <rect key="frame" x="0.0" y="0.0" width="320" height="455"/>
+ <rect key="frame" x="0.0" y="0.0" width="320" height="548"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
</imageView>
@@ -709,9 +709,9 @@
<simulatedScreenMetrics key="destination" type="retina4"/>
</simulatedMetricsContainer>
<inferredMetricsTieBreakers>
- <segue reference="dXX-Hq-UfP"/>
- <segue reference="Xkn-pY-4wX"/>
- <segue reference="SWe-Z1-9ai"/>
<segue reference="v2P-vH-cDu"/>
+ <segue reference="SWe-Z1-9ai"/>
+ <segue reference="Xkn-pY-4wX"/>
+ <segue reference="Ses-xg-leJ"/>
</inferredMetricsTieBreakers>
</document>
View
0  FlickrExplorer/Test_iPad.storyboard → FlickrExplorer/iPad.storyboard
File renamed without changes
View
5 Podfile
@@ -1,3 +1,2 @@
-$ edit Podfile
-platform :iOS
-pod 'Reachability'
+platform :ios, '6.0'
+pod 'Reachability', :head

No commit comments for this range

Something went wrong with that request. Please try again.