Commit b31c51ea authored by Marin Usalj's avatar Marin Usalj

Merge branch 'master' into local_repos

Conflicts:
	spec/unit/project_spec.rb
parents d1cf0b99 f3d66709
...@@ -6,24 +6,114 @@ To install or update CocoaPods see this [guide](http://docs.cocoapods.org/guides ...@@ -6,24 +6,114 @@ To install or update CocoaPods see this [guide](http://docs.cocoapods.org/guides
###### Enhancements ###### Enhancements
* The Pods project now is sorted by name. * Targets passed to the `link_with` method of the Podfile DSL no longer need
to be explicitly passed as an array. `link_with ['target1', 'target2']` can
now be written as `link_with 'target1', 'target2'`.
[Adam Sharp](https://github.com/sharplet)
[Core#30](https://github.com/CocoaPods/Core/pull/30)
###### Bug Fixes
* The architecture is now set in the build settings of the user build
configurations.
[Fabio Pelosin](https://github.com/irrationalfab)
[#1450](https://github.com/CocoaPods/CocoaPods/issues/1462)
[#1462](https://github.com/CocoaPods/CocoaPods/issues/1462)
* Fixed a crash related to CocoaPods being unable to resolve an unique build
setting of an user target with custom build configurations.
[Fabio Pelosin](https://github.com/irrationalfab)
[#1462](https://github.com/CocoaPods/CocoaPods/issues/1462)
[#1463](https://github.com/CocoaPods/CocoaPods/issues/1463)
[#1457](https://github.com/CocoaPods/CocoaPods/issues/1457)
* Fixed a defect which prevented subspecs from being dependant on a pod with a
name closely matching the name of one of the subspec's parents.
[Noah McCann](https://github.com/nmccann)
[#29](https://github.com/CocoaPods/Core/pull/29)
## 0.26.2
[CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.26.1...0.26.2)
[cocoapods-core](https://github.com/CocoaPods/Core/compare/0.26.1...0.26.2)
[Xcodeproj](https://github.com/CocoaPods/Xcodeproj/compare/0.11.1...0.13.0)
###### Bug Fixes
* Fixed a crash which was causing a failure in `pod lib create` if the name of
the Pod included spaces. As spaces are not supported now this is gracefully
handled with an informative message.
[Kyle Fuller](https://github.com/kylef)
[#1456](https://github.com/CocoaPods/CocoaPods/issues/1456)
* If an user target doesn't specify an architecture the value specified for the
project is used in CocoaPods targets.
[Fabio Pelosin](https://github.com/irrationalfab)
[#1450](https://github.com/CocoaPods/CocoaPods/issues/1450)
* The Pods project now properly configures ARC on all build configurations.
[Fabio Pelosin](https://github.com/irrationalfab)
[#1454](https://github.com/CocoaPods/CocoaPods/issues/1454)
## 0.26.1
[CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.25.0...0.26.1)
[cocoapods-core](https://github.com/CocoaPods/Core/compare/0.25.0...0.26.1)
[Xcodeproj](https://github.com/CocoaPods/Xcodeproj/compare/0.11.1...0.12.0)
###### Enhancements
* CocoaPods now creates and hides the schemes of its targets after every
installation. The schemes are not shared because the flag which keeps track
whether they should be visible is a user only flag. The schemes are still
present and to debug a single Pod it is possible to make its scheme visible
in the Schemes manager of Xcode. This is rarely needed though because the
user targets trigger the compilation of the Pod targets.
[Fabio Pelosin](https://github.com/irrationalfab)
[#1185](https://github.com/CocoaPods/CocoaPods/pull/1185)
* Installations which don't integrate a user target (lint subcommands and
`--no-integrate` option) now set the architecture of OS X Pod targets to
`$(ARCHS_STANDARD_64_BIT)` (Xcode 4 default value for new targets). This
fixes lint issues with Xcode 4.
[Fabio Pelosin](https://github.com/irrationalfab)
[#1185](https://github.com/CocoaPods/CocoaPods/pull/1185)
* Further improvements to the organization of the Pods project
- The project is now is sorted by name with groups at the bottom.
- Source files are now stored in the root group of the spec, subspecs are not
stored in a `Subspec` group anymore and the products of the Pods all are
stored in the products group of the project.
- The frameworks are referenced relative to the Developer directory and
namespaced per platform.
[Fabio Pelosin](https://github.com/irrationalfab)
[#1389](https://github.com/CocoaPods/CocoaPods/pull/1389) [#1389](https://github.com/CocoaPods/CocoaPods/pull/1389)
[#1420](https://github.com/CocoaPods/CocoaPods/pull/1420)
* Added the `documentation_url` DSL attribute to the specifications. * Added the `documentation_url` DSL attribute to the specifications.
[Fabio Pelosin](https://github.com/irrationalfab)
[#1273](https://github.com/CocoaPods/CocoaPods/pull/1273) [#1273](https://github.com/CocoaPods/CocoaPods/pull/1273)
###### Bug Fixes ###### Bug Fixes
* The search paths of vendored frameworks and libraries now are always * The search paths of vendored frameworks and libraries now are always
specified relatively. specified relatively.
[Fabio Pelosin](https://github.com/irrationalfab)
[#1405](https://github.com/CocoaPods/CocoaPods/pull/1405) [#1405](https://github.com/CocoaPods/CocoaPods/pull/1405)
* Fix an issue where CocoaPods would fail to work when used with an older * Fix an issue where CocoaPods would fail to work when used with an older
version of activesupport. This fix raises the dependency version to version of the Active Support gem. This fix raises the dependency version to
the earliest compatible version of activesupport. the earliest compatible version of Active Support.
[Kyle Fuller](https://github.com/kylef) [Kyle Fuller](https://github.com/kylef)
[#1407](https://github.com/CocoaPods/CocoaPods/issues/1407) [#1407](https://github.com/CocoaPods/CocoaPods/issues/1407)
* CocoaPods will not attempt to load anymore all the version of a specification
preventing crashes if those are incompatible.
[Fabio Pelosin](https://github.com/irrationalfab)
[#1272](https://github.com/CocoaPods/CocoaPods/pull/1272)
## 0.25.0 ## 0.25.0
[CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.24.0...0.25.0) [CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.24.0...0.25.0)
...@@ -37,13 +127,15 @@ To install or update CocoaPods see this [guide](http://docs.cocoapods.org/guides ...@@ -37,13 +127,15 @@ To install or update CocoaPods see this [guide](http://docs.cocoapods.org/guides
The generated Pods Xcode project is now compatible with `arm64` projects and The generated Pods Xcode project is now compatible with `arm64` projects and
is updated to use Xcode 5’s default settings removing all warnings. is updated to use Xcode 5’s default settings removing all warnings.
**NOTE to Xcode 4 users:** **NOTE to users migrating projects from Xcode 4, or are still using Xcode 4:**
1. This means that the Pods Xcode project now sets the `ONLY_ACTIVE_ARCH` 1. The Pods Xcode project now sets the `ONLY_ACTIVE_ARCH` build setting to
build setting to `YES` in the `Debug` configuration. You’ll have to set the `YES` in the `Debug` configuration. You _will_ have to set the same on your
same on your project/target, otherwise the build _will_ fail. project/target, otherwise the build _will_ fail.
2. When building a **iOS** project from the command-line with the `xcodebuild` 2. Ensure your project/target has an `ARCHS` value set, otherwise the build
tool you’ll need to completely disable this setting by appending to your _will_ fail.
build command: `ONLY_ACTIVE_ARCH=NO`. 3. When building a **iOS** project from the command-line, with the `xcodebuild`
tool that comes with Xcode 4, you’ll need to completely disable this setting
by appending to your build command: `ONLY_ACTIVE_ARCH=NO`.
[#1352](https://github.com/CocoaPods/CocoaPods/pull/1352) [#1352](https://github.com/CocoaPods/CocoaPods/pull/1352)
......
...@@ -18,7 +18,7 @@ group :development do ...@@ -18,7 +18,7 @@ group :development do
gem "mocha-on-bacon" gem "mocha-on-bacon"
gem 'prettybacon', :git => 'https://github.com/irrationalfab/PrettyBacon.git', :branch => 'master' gem 'prettybacon', :git => 'https://github.com/irrationalfab/PrettyBacon.git', :branch => 'master'
gem "rake" gem "rake"
gem 'coveralls', :require => false, :git => 'https://github.com/lemurheavy/coveralls-ruby.git' gem 'coveralls', :require => false
# Explicitly add this, otherwise it might sometimes be missing: # Explicitly add this, otherwise it might sometimes be missing:
# https://github.com/lemurheavy/coveralls-ruby/blob/master/coveralls-ruby.gemspec#L23. # https://github.com/lemurheavy/coveralls-ruby/blob/master/coveralls-ruby.gemspec#L23.
gem 'simplecov' gem 'simplecov'
......
...@@ -7,21 +7,21 @@ GIT ...@@ -7,21 +7,21 @@ GIT
GIT GIT
remote: https://github.com/CocoaPods/Core.git remote: https://github.com/CocoaPods/Core.git
revision: 24b9357066e2d174d5e066de78b82e57b94a593a revision: 95a4edaac972f6183e1c19e4b519f5d79e14898d
branch: master branch: master
specs: specs:
cocoapods-core (0.25.0) cocoapods-core (0.26.2)
activesupport (~> 3.0) activesupport (~> 3.0)
json (~> 1.8) json (~> 1.8)
nap (~> 0.5) nap (~> 0.5)
GIT GIT
remote: https://github.com/CocoaPods/Xcodeproj.git remote: https://github.com/CocoaPods/Xcodeproj.git
revision: 12c03cded738b149371e0aecc344d4436061c38c revision: 137c22774ca770e112fb8eeb2f10473db7587d16
branch: master branch: master
specs: specs:
xcodeproj (0.11.1) xcodeproj (0.13.1)
activesupport (~> 3.2) activesupport (~> 3.0)
colored (~> 1.2) colored (~> 1.2)
GIT GIT
...@@ -47,30 +47,19 @@ GIT ...@@ -47,30 +47,19 @@ GIT
prettybacon (0.0.1) prettybacon (0.0.1)
bacon (~> 1.2) bacon (~> 1.2)
GIT
remote: https://github.com/lemurheavy/coveralls-ruby.git
revision: b1a5dcc23a4a9cb02a6a1560c63861d102530cd9
specs:
coveralls (0.7.0)
multi_json (~> 1.3)
rest-client
simplecov (>= 0.7)
term-ansicolor
thor
PATH PATH
remote: . remote: .
specs: specs:
cocoapods (0.25.0) cocoapods (0.26.2)
activesupport (~> 3.2) activesupport (~> 3.2)
claide (~> 0.3.2) claide (~> 0.3.2)
cocoapods-core (= 0.25.0) cocoapods-core (= 0.26.2)
cocoapods-downloader (~> 0.2.0) cocoapods-downloader (~> 0.2.0)
colored (~> 1.2) colored (~> 1.2)
escape (~> 0.0.4) escape (~> 0.0.4)
json (~> 1.8) json (~> 1.8)
open4 (~> 1.3) open4 (~> 1.3)
xcodeproj (~> 0.11.0) xcodeproj (~> 0.13.1)
GEM GEM
remote: http://rubygems.org/ remote: http://rubygems.org/
...@@ -78,10 +67,16 @@ GEM ...@@ -78,10 +67,16 @@ GEM
activesupport (3.2.14) activesupport (3.2.14)
i18n (~> 0.6, >= 0.6.4) i18n (~> 0.6, >= 0.6.4)
multi_json (~> 1.0) multi_json (~> 1.0)
awesome_print (1.1.0) awesome_print (1.2.0)
bacon (1.2.0) bacon (1.2.0)
coderay (1.0.9) coderay (1.0.9)
colored (1.2) colored (1.2)
coveralls (0.7.0)
multi_json (~> 1.3)
rest-client
simplecov (>= 0.7)
term-ansicolor
thor
diffy (3.0.1) diffy (3.0.1)
escape (0.0.4) escape (0.0.4)
ffi (1.9.0) ffi (1.9.0)
...@@ -99,7 +94,7 @@ GEM ...@@ -99,7 +94,7 @@ GEM
metaclass (~> 0.0.1) metaclass (~> 0.0.1)
mocha-on-bacon (0.2.2) mocha-on-bacon (0.2.2)
mocha (>= 0.13.0) mocha (>= 0.13.0)
multi_json (1.8.0) multi_json (1.8.1)
nap (0.5.1) nap (0.5.1)
open4 (1.3.0) open4 (1.3.0)
posix-spawn (0.3.6) posix-spawn (0.3.6)
...@@ -128,7 +123,7 @@ GEM ...@@ -128,7 +123,7 @@ GEM
term-ansicolor (1.2.2) term-ansicolor (1.2.2)
tins (~> 0.8) tins (~> 0.8)
thor (0.18.1) thor (0.18.1)
tins (0.10.0) tins (0.11.0)
yajl-ruby (1.1.0) yajl-ruby (1.1.0)
yard (0.8.7.2) yard (0.8.7.2)
...@@ -142,7 +137,7 @@ DEPENDENCIES ...@@ -142,7 +137,7 @@ DEPENDENCIES
cocoapods! cocoapods!
cocoapods-core! cocoapods-core!
cocoapods-downloader! cocoapods-downloader!
coveralls! coveralls
diffy diffy
github-markup github-markup
kicker! kicker!
......
# CocoaPods – an Objective-C library manager # CocoaPods
### the Objective-C dependency manager
[![Build Status](https://travis-ci.org/CocoaPods/CocoaPods.png?branch=master)](https://travis-ci.org/CocoaPods/CocoaPods) [![Build Status](https://travis-ci.org/CocoaPods/CocoaPods.png?branch=master)](https://travis-ci.org/CocoaPods/CocoaPods)
[![Code Climate](https://codeclimate.com/github/CocoaPods/CocoaPods.png)](https://codeclimate.com/github/CocoaPods/CocoaPods)
[![Dependency Status](https://gemnasium.com/CocoaPods/CocoaPods.png)](https://gemnasium.com/CocoaPods/CocoaPods)
[![Gem Version](https://badge.fury.io/rb/cocoapods.png)](http://badge.fury.io/rb/cocoapods) [![Gem Version](https://badge.fury.io/rb/cocoapods.png)](http://badge.fury.io/rb/cocoapods)
[![Code Climate](https://codeclimate.com/github/CocoaPods/CocoaPods.png)](https://codeclimate.com/github/CocoaPods/CocoaPods)
CocoaPods manages library dependencies for your Xcode project. CocoaPods manages dependencies for your Xcode project.
You specify the dependencies for your project in one easy text file. CocoaPods You specify the dependencies for your project in one easy text file. CocoaPods
resolves dependencies between libraries, fetches source code for the resolves dependencies between libraries, fetches source code for the
...@@ -22,17 +23,28 @@ See the [NSScreencast](https://twitter.com/NSScreencast) episode about [using ...@@ -22,17 +23,28 @@ See the [NSScreencast](https://twitter.com/NSScreencast) episode about [using
CocoaPods](http://nsscreencast.com/episodes/5-cocoapods) for a quick overview. CocoaPods](http://nsscreencast.com/episodes/5-cocoapods) for a quick overview.
## Sponsors
Lovingly sponsored by [Fingertips](http://www.fngtps.com),
[Hipbyte](http://www.hipbyte.com), [Artsy](http://artsy.net) and
[Sauspiel](https://www.sauspiel.de).
## Collaborate
All CocoaPods development happens on GitHub, contributions make good karma and
we welcome with joy new contributors.
## Links ## Links
| Link | Description | | Link | Description |
| :----- | :------ | | :----- | :------ |
[CocoaPods.org](http://cocoapods.org/) | Homepage and search for Pods. [CocoaPods.org](http://cocoapods.org/) | Homepage and search for Pods.
[@CocoaPods](http://twitter.com/CocoaPods) | Follow CocoaPods on Twitter to get up to date information about what's going on in the CocoaPods world. [@CocoaPods](http://twitter.com/CocoaPods) | Follow CocoaPods on Twitter to stay up to date.
[Mailing List](http://groups.google.com/group/cocoapods) | Announcements and support. Feel free to ask any kind of question. [Blog](http://blog.cocoapods.org) | The CocoaPods blog.
[Mailing List](http://groups.google.com/group/cocoapods) | Feel free to ask any kind of question.
[Documentation](http://docs.cocoapods.org) | Everything you want to know about CocoaPods. [Documentation](http://docs.cocoapods.org) | Everything you want to know about CocoaPods.
[Changelog](https://github.com/CocoaPods/CocoaPods/blob/master/CHANGELOG.md) | See the changes introduced by each CocoaPods version. [Changelog](https://github.com/CocoaPods/CocoaPods/blob/master/CHANGELOG.md) | See the changes introduced by each CocoaPods version.
[RSS feed](http://feeds.cocoapods.org/new-pods.rss) | Don't miss any new Pod. [New Pods RSS](http://feeds.cocoapods.org/new-pods.rss) | Don't miss any new Pod.
## Projects ## Projects
...@@ -42,53 +54,8 @@ CocoaPods is composed by the following projects: ...@@ -42,53 +54,8 @@ CocoaPods is composed by the following projects:
| :----- | :------ | :--- | :--- | | :----- | :------ | :--- | :--- |
| [![Build Status](https://secure.travis-ci.org/CocoaPods/CocoaPods.png?branch=master)](http://travis-ci.org/CocoaPods/CocoaPods) | [CocoaPods](https://github.com/CocoaPods/CocoaPods) | The CocoaPods command line tool. | [docs](http://docs.cocoapods.org/cocoapods) | [![Build Status](https://secure.travis-ci.org/CocoaPods/CocoaPods.png?branch=master)](http://travis-ci.org/CocoaPods/CocoaPods) | [CocoaPods](https://github.com/CocoaPods/CocoaPods) | The CocoaPods command line tool. | [docs](http://docs.cocoapods.org/cocoapods)
| [![Build Status](https://secure.travis-ci.org/CocoaPods/Core.png?branch=master)](http://travis-ci.org/CocoaPods/Core) | [CocoaPods Core](https://github.com/CocoaPods/Core) | Support for working with specifications and podfiles. | [docs](http://docs.cocoapods.org/cocoapods_core) | [![Build Status](https://secure.travis-ci.org/CocoaPods/Core.png?branch=master)](http://travis-ci.org/CocoaPods/Core) | [CocoaPods Core](https://github.com/CocoaPods/Core) | Support for working with specifications and podfiles. | [docs](http://docs.cocoapods.org/cocoapods_core)
| [![Build Status](https://secure.travis-ci.org/CocoaPods/cocoapods-downloader.png?branch=master)](http://travis-ci.org/CocoaPods/cocoapods-downloader) |[CocoaPods Downloader](https://github.com/CocoaPods/cocoapods-downloader) | A small library that provides downloaders for various source types. | [docs](http://docs.cocoapods.org/cocoapods_downloader/index.html) | [![Build Status](https://secure.travis-ci.org/CocoaPods/cocoapods-downloader.png?branch=master)](http://travis-ci.org/CocoaPods/cocoapods-downloader) |[CocoaPods Downloader](https://github.com/CocoaPods/cocoapods-downloader) | Downloaders for various source types. | [docs](http://docs.cocoapods.org/cocoapods_downloader/index.html)
| [![Build Status](https://travis-ci.org/CocoaPods/Xcodeproj.png?branch=master)](https://travis-ci.org/CocoaPods/Xcodeproj) | [Xcodeproj](https://github.com/CocoaPods/Xcodeproj) | Create and modify Xcode projects from Ruby. | [docs](http://docs.cocoapods.org/xcodeproj/index.html) | [![Build Status](https://travis-ci.org/CocoaPods/Xcodeproj.png?branch=master)](https://travis-ci.org/CocoaPods/Xcodeproj) | [Xcodeproj](https://github.com/CocoaPods/Xcodeproj) | Create and modify Xcode projects from Ruby. | [docs](http://docs.cocoapods.org/xcodeproj/index.html)
| [![Build Status](https://travis-ci.org/CocoaPods/CLAide.png?branch=master)](https://travis-ci.org/CocoaPods/CLAide) | [CLAide](https://github.com/CocoaPods/CLAide) | A small command-line interface framework. | [docs](http://docs.cocoapods.org/claide/index.html) | [![Build Status](https://travis-ci.org/CocoaPods/CLAide.png?branch=master)](https://travis-ci.org/CocoaPods/CLAide) | [CLAide](https://github.com/CocoaPods/CLAide) | A small command-line interface framework. | [docs](http://docs.cocoapods.org/claide/index.html)
| [![Build Status](https://secure.travis-ci.org/CocoaPods/Specs.png?branch=master)](http://travis-ci.org/CocoaPods/Specs) | [Master Repo ](https://github.com/CocoaPods/Specs) | Master repository of specifications. | [guide](http://docs.cocoapods.org/guides/contributing_to_the_master_repo.html) | [![Build Status](https://secure.travis-ci.org/CocoaPods/Specs.png?branch=master)](http://travis-ci.org/CocoaPods/Specs) | [Master Repo ](https://github.com/CocoaPods/Specs) | Master repository of specifications. | [guide](http://docs.cocoapods.org/guides/contributing_to_the_master_repo.html)
## Collaborate
All CocoaPods development happens on GitHub, contributions make good karma and
we welcome with joy new contributors.
# Sponsors
- [@fngtps](http://twitter.com/fngtps) is donating time to work on the design
of the forthcoming cocoapods.org website and donated the money to hire [Max
Steenbergen](http://twitter.com/maxsteenbergen) to design [an
icon](http://drbl.in/cpmL) for it.
- [@sauspiel](http://twitter.com/Sauspiel) uses CocoaPods for their games and
have hired @alloy to add features and specs they needed. These are Nimbus,
QuincyKit, and HockeyKit. For the [Nimbus
spec](https://github.com/CocoaPods/Specs/blob/master/Nimbus/0.9.0/Nimbus.podspec),
the ‘subspecs’ feature was added.
# Endorsements
- “I am crazy excited about this. With the growing number of Objective-C
libraries, this will make things so much better.” –– [Sam
Soffes](http://news.ycombinator.com/item?id=3009154)
- “Are you doing open source iOS components? You really should support
@CocoaPods!” –– [Matthias
Tretter](http://twitter.com/#!/myell0w/status/134955697740840961)
- “So glad someone has finally done this...” –– [Tom
Wilson](http://news.ycombinator.com/item?id=3009349)
- “Anybody who has tasted the coolness of RubyGems (and @gembundler)
understands how cool CocoaPods might be.” –– [StuFF
mc](http://twitter.com/#!/stuffmc/status/115374231591731200)
- “I will be working on getting several of my Objective-C libraries ready for
CocoaPods this week!” –– [Luke
Redpath](http://twitter.com/#!/lukeredpath/status/115510581921988608)
- “Really digg how @alloy is building a potential game changer” –– [Klaas
Speller](https://twitter.com/#!/spllr/status/115914209438601216)
- “@alloy's making an Objective-C package manager. This is fantastic news
kids!” –– [Josh
Abernathy](http://twitter.com/#!/joshaber/status/115273577703555073)
- “A package manager for Cocoa/Objective-C, built with @MacRuby. Awesomeness!”
–– [Johannes
Fahrenkrug](http://twitter.com/#!/jfahrenkrug/status/115303240286998528)
- “This is awesome, I love endorsements!” –– [Appie
Durán](http://twitter.com/#!/AppieDuran)
...@@ -303,22 +303,6 @@ end ...@@ -303,22 +303,6 @@ end
task :examples => "examples:build" task :examples => "examples:build"
namespace :examples do namespace :examples do
def examples
require 'pathname'
result = []
examples = Pathname.new(File.expand_path('../examples', __FILE__))
return [examples + ENV['example']] if ENV['example']
examples.entries.each do |example|
next if %w{ . .. }.include?(example.basename.to_s)
example = examples + example
next unless example.directory?
result << example
end
result
end
#--------------------------------------#
desc "Open all example workspaces in Xcode, which recreates the schemes." desc "Open all example workspaces in Xcode, which recreates the schemes."
task :recreate_workspace_schemes do task :recreate_workspace_schemes do
examples.each do |example| examples.each do |example|
...@@ -335,34 +319,26 @@ namespace :examples do ...@@ -335,34 +319,26 @@ namespace :examples do
desc "Build all examples" desc "Build all examples"
task :build do task :build do
Dir.chdir("examples/AFNetworking Example") do
# TODO: sometimes it uses the installed gem puts "Installing Pods"
# Rake::Task['gem:install'].invoke pod_command = ENV['FROM_GEM'] ? 'sandbox-pod' : 'bundle exec ../../bin/sandbox-pod'
execute_command "rm -rf Pods"
examples.entries.each do |example| execute_command "#{pod_command} install --verbose --no-repo-update"
puts "Building example: #{example}"
Dir.chdir(example.to_s) do puts "Building example: AFNetworking Mac Example'"
execute_command "rm -rf Pods DerivedData" execute_command "xcodebuild -workspace 'AFNetworking Examples.xcworkspace' -scheme 'AFNetworking Example' clean install"
# WARNING: This appeart to use sytem gems instead of the bundle ones.
pod_command = ENV['FROM_GEM'] ? 'sandbox-pod' : 'bundle exec ../../bin/sandbox-pod' puts "Building example: AFNetworking iOS Example'"
execute_command "#{pod_command} install --verbose --no-repo-update" xcode_version = `xcodebuild -version`.scan(/Xcode (.*)\n/).first.first
command = "xcodebuild -workspace '#{example.basename}.xcworkspace' -scheme '#{example.basename}'" major_version = xcode_version.split('.').first.to_i
if (example + 'Podfile').read.include?('platform :ios') # Specifically build against the simulator SDK so we don't have to deal with code signing.
# Specifically build against the simulator SDK so we don't have to deal with code signing. if major_version > 4
xcode_version = `xcodebuild -version`.scan(/Xcode (.*)\n/).first.first execute_command "xcodebuild -workspace 'AFNetworking Examples.xcworkspace' -scheme 'AFNetworking iOS Example' clean install ONLY_ACTIVE_ARCH=NO -destination 'platform=iOS Simulator,name=iPhone Retina (4-inch)'"
major_version = xcode_version.split('.').first.to_i else
destination_flag_supported = major_version > 4 sdk = Dir.glob("#{`xcode-select -print-path`.chomp}/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator*.sdk").last
if destination_flag_supported execute_command "xcodebuild -workspace 'AFNetworking Examples.xcworkspace' -scheme 'AFNetworking iOS Example' clean install ONLY_ACTIVE_ARCH=NO -sdk #{sdk}"
command << " -destination 'platform=iOS Simulator,name=iPhone Retina (4-inch)'"
else
command << " -sdk "
command << Dir.glob("#{`xcode-select -print-path`.chomp}/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator*.sdk").last
end
command << " ONLY_ACTIVE_ARCH=NO"
end
execute_command(command)
end end
end end
end end
......
...@@ -30,7 +30,7 @@ s.files = Dir["lib/**/*.rb"] + %w{ bin/pod bin/sandbox-pod README.md LICENSE CHA ...@@ -30,7 +30,7 @@ s.files = Dir["lib/**/*.rb"] + %w{ bin/pod bin/sandbox-pod README.md LICENSE CHA
s.add_runtime_dependency 'cocoapods-core', "= #{Pod::VERSION}" s.add_runtime_dependency 'cocoapods-core', "= #{Pod::VERSION}"
s.add_runtime_dependency 'claide', '~> 0.3.2' s.add_runtime_dependency 'claide', '~> 0.3.2'
s.add_runtime_dependency 'cocoapods-downloader', '~> 0.2.0' s.add_runtime_dependency 'cocoapods-downloader', '~> 0.2.0'
s.add_runtime_dependency 'xcodeproj', '~> 0.11.0' s.add_runtime_dependency 'xcodeproj', '~> 0.13.1'
s.add_runtime_dependency 'colored', '~> 1.2' s.add_runtime_dependency 'colored', '~> 1.2'
s.add_runtime_dependency 'escape', '~> 0.0.4' s.add_runtime_dependency 'escape', '~> 0.0.4'
...@@ -54,6 +54,9 @@ s.files = Dir["lib/**/*.rb"] + %w{ bin/pod bin/sandbox-pod README.md LICENSE CHA ...@@ -54,6 +54,9 @@ s.files = Dir["lib/**/*.rb"] + %w{ bin/pod bin/sandbox-pod README.md LICENSE CHA
lines = text.split("\n") lines = text.split("\n")
current_version_index = lines.find_index { |line| line =~ (/^#{current_verison_title}/) } current_version_index = lines.find_index { |line| line =~ (/^#{current_verison_title}/) }
unless current_version_index
raise "Update the changelog for the last version"
end
previous_version_lines = lines[(current_version_index+1)...-1] previous_version_lines = lines[(current_version_index+1)...-1]
previous_version_index = current_version_index + previous_version_lines.find_index { |line| line =~ (/^#{title_token}/) && !line.include?('rc') } previous_version_index = current_version_index + previous_version_lines.find_index { |line| line =~ (/^#{title_token}/) && !line.include?('rc') }
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
</dict>
</plist>
<?xml version='1.0' encoding='UTF-8'?><Workspace version='1.0'><FileRef location='group:AFNetworking Mac Example.xcodeproj'/><FileRef location='group:Pods/Pods.xcodeproj'/></Workspace> <?xml version='1.0' encoding='UTF-8'?><Workspace version='1.0'><FileRef location='group:AFNetworking Mac Example.xcodeproj'/><FileRef location='group:AFNetworking iOS Example.xcodeproj'/><FileRef location='group:Pods/Pods.xcodeproj'/></Workspace>
\ No newline at end of file \ No newline at end of file
...@@ -7,231 +7,206 @@ ...@@ -7,231 +7,206 @@
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
11B1743F89354E14AD85E930 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8611E331022F4C3AA09890CC /* libPods.a */; }; 26E82B9975F54DA9BAC1E0C9 /* libPods-AFNetworking Example.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6935B1E417A24F0E958977ED /* libPods-AFNetworking Example.a */; };
F87A15CD1444A30800318955 /* AFGowallaAPIClient.m in Sources */ = {isa = PBXBuildFile; fileRef = F87A15C61444A30800318955 /* AFGowallaAPIClient.m */; }; B304CCE8177D58DD00F4FC85 /* adn.cer in Resources */ = {isa = PBXBuildFile; fileRef = B304CCE7177D58DD00F4FC85 /* adn.cer */; };
F87A15CE1444A30800318955 /* NearbySpotsController.m in Sources */ = {isa = PBXBuildFile; fileRef = F87A15C91444A30800318955 /* NearbySpotsController.m */; }; F8129C001591061B009BFE23 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8129BFF1591061B009BFE23 /* Cocoa.framework */; };
F87A15CF1444A30800318955 /* Spot.m in Sources */ = {isa = PBXBuildFile; fileRef = F87A15CC1444A30800318955 /* Spot.m */; }; F8129C321591073C009BFE23 /* AFAppDotNetAPIClient.m in Sources */ = {isa = PBXBuildFile; fileRef = F8129C251591073C009BFE23 /* AFAppDotNetAPIClient.m */; };
F87A15D11444A3EB00318955 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F87A15D01444A3EB00318955 /* CoreLocation.framework */; }; F8129C341591073C009BFE23 /* Post.m in Sources */ = {isa = PBXBuildFile; fileRef = F8129C2B1591073C009BFE23 /* Post.m */; };
F87A15DD1444A86600318955 /* placeholder-stamp.png in Resources */ = {isa = PBXBuildFile; fileRef = F87A15DB1444A86600318955 /* placeholder-stamp.png */; }; F8129C351591073C009BFE23 /* User.m in Sources */ = {isa = PBXBuildFile; fileRef = F8129C2D1591073C009BFE23 /* User.m */; };
F8A27AC7142CFE1300F5E0D6 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F8A27AB2142CFE1300F5E0D6 /* AppDelegate.m */; }; F8129C6F15910B15009BFE23 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = F8129C6E15910B15009BFE23 /* main.m */; };
F8A27AC8142CFE1300F5E0D6 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = F8A27AB3142CFE1300F5E0D6 /* main.m */; }; F8129C7115910B3E009BFE23 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = F8129C7015910B3E009BFE23 /* MainMenu.xib */; };
F8A27AC9142CFE1300F5E0D6 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = F8A27AB9142CFE1300F5E0D6 /* Credits.rtf */; }; F8129C7715910C40009BFE23 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F8129C7515910C40009BFE23 /* AppDelegate.m */; };
F8A27ACA142CFE1300F5E0D6 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = F8A27ABB142CFE1300F5E0D6 /* MainMenu.xib */; };
F8CEEB6F142CEC6E00247B03 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8CEEB6E142CEC6E00247B03 /* Cocoa.framework */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
7F444671037A4EAEBDA542D6 /* Pods.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Pods.xcconfig; path = Pods/Pods.xcconfig; sourceTree = SOURCE_ROOT; }; 6935B1E417A24F0E958977ED /* libPods-AFNetworking Example.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AFNetworking Example.a"; sourceTree = BUILT_PRODUCTS_DIR; };
7FE1FF99DC1B4295A4C8BD9E /* Pods.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.xcconfig; path = Pods/Pods.xcconfig; sourceTree = SOURCE_ROOT; }; B304CCE7177D58DD00F4FC85 /* adn.cer */ = {isa = PBXFileReference; lastKnownFileType = file; path = adn.cer; sourceTree = SOURCE_ROOT; };
8611E331022F4C3AA09890CC /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; E74E8E7AFD3F4DCF9FEAB5B4 /* Pods-AFNetworking Example.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AFNetworking Example.xcconfig"; path = "Pods/Pods-AFNetworking Example.xcconfig"; sourceTree = "<group>"; };
D30A9AFA1D134BD896376B60 /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; F8129BFB1591061B009BFE23 /* AFNetworking Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "AFNetworking Example.app"; sourceTree = BUILT_PRODUCTS_DIR; };
F87A15C51444A30800318955 /* AFGowallaAPIClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFGowallaAPIClient.h; sourceTree = "<group>"; }; F8129BFF1591061B009BFE23 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
F87A15C61444A30800318955 /* AFGowallaAPIClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFGowallaAPIClient.m; sourceTree = "<group>"; }; F8129C021591061B009BFE23 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
F87A15C81444A30800318955 /* NearbySpotsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NearbySpotsController.h; sourceTree = "<group>"; }; F8129C031591061B009BFE23 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
F87A15C91444A30800318955 /* NearbySpotsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NearbySpotsController.m; sourceTree = "<group>"; }; F8129C041591061B009BFE23 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
F87A15CB1444A30800318955 /* Spot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Spot.h; sourceTree = "<group>"; }; F8129C251591073C009BFE23 /* AFAppDotNetAPIClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AFAppDotNetAPIClient.m; path = Classes/AFAppDotNetAPIClient.m; sourceTree = SOURCE_ROOT; };
F87A15CC1444A30800318955 /* Spot.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Spot.m; sourceTree = "<group>"; }; F8129C2A1591073C009BFE23 /* Post.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Post.h; sourceTree = "<group>"; };
F87A15D01444A3EB00318955 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; F8129C2B1591073C009BFE23 /* Post.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Post.m; sourceTree = "<group>"; };
F87A15DB1444A86600318955 /* placeholder-stamp.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "placeholder-stamp.png"; sourceTree = "<group>"; }; F8129C2C1591073C009BFE23 /* User.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = "<group>"; };
F8A27AB1142CFE1300F5E0D6 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; F8129C2D1591073C009BFE23 /* User.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = User.m; sourceTree = "<group>"; };
F8A27AB2142CFE1300F5E0D6 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; F8129C311591073C009BFE23 /* AFAppDotNetAPIClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AFAppDotNetAPIClient.h; path = Classes/AFAppDotNetAPIClient.h; sourceTree = SOURCE_ROOT; };
F8A27AB3142CFE1300F5E0D6 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; F8129C6E15910B15009BFE23 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = SOURCE_ROOT; };
F8A27ABA142CFE1300F5E0D6 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = Credits.rtf; sourceTree = "<group>"; }; F8129C7015910B3E009BFE23 /* MainMenu.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MainMenu.xib; sourceTree = SOURCE_ROOT; };
F8A27ABC142CFE1300F5E0D6 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = MainMenu.xib; sourceTree = "<group>"; }; F8129C7515910C40009BFE23 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = SOURCE_ROOT; };
F8A27AC4142CFE1300F5E0D6 /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Prefix.pch; sourceTree = "<group>"; }; F8129C7615910C40009BFE23 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = SOURCE_ROOT; };
F8A27AC5142CFE1300F5E0D6 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; F877018B159A1CE700B45C0D /* AFNetworking Example.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = "AFNetworking Example.entitlements"; sourceTree = "<group>"; };
F8CEEB6A142CEC6E00247B03 /* AFNetworking Mac Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "AFNetworking Mac Example.app"; sourceTree = BUILT_PRODUCTS_DIR; };
F8CEEB6E142CEC6E00247B03 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
F8CEEB71142CEC6E00247B03 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
F8CEEB72142CEC6E00247B03 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
F8CEEB73142CEC6E00247B03 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
F8CEEB67142CEC6E00247B03 /* Frameworks */ = { F8129BF81591061B009BFE23 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
F87A15D11444A3EB00318955 /* CoreLocation.framework in Frameworks */, F8129C001591061B009BFE23 /* Cocoa.framework in Frameworks */,
F8CEEB6F142CEC6E00247B03 /* Cocoa.framework in Frameworks */, 26E82B9975F54DA9BAC1E0C9 /* libPods-AFNetworking Example.a in Frameworks */,
11B1743F89354E14AD85E930 /* libPods.a in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
/* End PBXFrameworksBuildPhase section */ /* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */ /* Begin PBXGroup section */
F87A15C41444A30800318955 /* Classes */ = { F8129BF01591061B009BFE23 = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
F87A15C51444A30800318955 /* AFGowallaAPIClient.h */, F877018B159A1CE700B45C0D /* AFNetworking Example.entitlements */,
F87A15C61444A30800318955 /* AFGowallaAPIClient.m */, F8129C051591061B009BFE23 /* Classes */,
F87A15C71444A30800318955 /* Controllers */, F8129BFE1591061B009BFE23 /* Frameworks */,
F87A15CA1444A30800318955 /* Models */, F8129BFC1591061B009BFE23 /* Products */,
E74E8E7AFD3F4DCF9FEAB5B4 /* Pods-AFNetworking Example.xcconfig */,
); );
path = Classes; indentWidth = 4;
sourceTree = "<group>"; sourceTree = "<group>";
tabWidth = 4;
usesTabs = 0;
}; };
F87A15C71444A30800318955 /* Controllers */ = { F8129BFC1591061B009BFE23 /* Products */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
F87A15C81444A30800318955 /* NearbySpotsController.h */, F8129BFB1591061B009BFE23 /* AFNetworking Example.app */,
F87A15C91444A30800318955 /* NearbySpotsController.m */,
); );
path = Controllers; name = Products;
sourceTree = "<group>";
};
F87A15CA1444A30800318955 /* Models */ = {
isa = PBXGroup;
children = (
F87A15CB1444A30800318955 /* Spot.h */,
F87A15CC1444A30800318955 /* Spot.m */,
);
path = Models;
sourceTree = "<group>";
};
F87A15DA1444A86600318955 /* Images */ = {
isa = PBXGroup;
children = (
F87A15DB1444A86600318955 /* placeholder-stamp.png */,
);
path = Images;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
F8A27ACD142CFE3000F5E0D6 /* Supporting Files */ = { F8129BFE1591061B009BFE23 /* Frameworks */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
F8A27AB3142CFE1300F5E0D6 /* main.m */, F8129BFF1591061B009BFE23 /* Cocoa.framework */,
F8A27AB1142CFE1300F5E0D6 /* Info.plist */, F8129C011591061B009BFE23 /* Other Frameworks */,
F8A27AB2142CFE1300F5E0D6 /* AppDelegate.m */, 6935B1E417A24F0E958977ED /* libPods-AFNetworking Example.a */,
F8A27AC4142CFE1300F5E0D6 /* Prefix.pch */,
F8A27AC5142CFE1300F5E0D6 /* AppDelegate.h */,
F8A27AB9142CFE1300F5E0D6 /* Credits.rtf */,
F8A27ABB142CFE1300F5E0D6 /* MainMenu.xib */,
F87A15DA1444A86600318955 /* Images */,
); );
name = "Supporting Files"; name = Frameworks;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
F8CEEB5F142CEC6E00247B03 = { F8129C011591061B009BFE23 /* Other Frameworks */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
F87A15C41444A30800318955 /* Classes */, F8129C021591061B009BFE23 /* AppKit.framework */,
F8A27ACD142CFE3000F5E0D6 /* Supporting Files */, F8129C031591061B009BFE23 /* CoreData.framework */,
F8CEEB6D142CEC6E00247B03 /* Frameworks */, F8129C041591061B009BFE23 /* Foundation.framework */,
F8CEEB6B142CEC6E00247B03 /* Products */,
7F444671037A4EAEBDA542D6 /* Pods.xcconfig */,
7FE1FF99DC1B4295A4C8BD9E /* Pods.xcconfig */,
); );
name = "Other Frameworks";
sourceTree = "<group>"; sourceTree = "<group>";
}; };
F8CEEB6B142CEC6E00247B03 /* Products */ = { F8129C051591061B009BFE23 /* Classes */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
F8CEEB6A142CEC6E00247B03 /* AFNetworking Mac Example.app */, F8129C311591073C009BFE23 /* AFAppDotNetAPIClient.h */,
F8129C251591073C009BFE23 /* AFAppDotNetAPIClient.m */,
F8129C7615910C40009BFE23 /* AppDelegate.h */,
F8129C7515910C40009BFE23 /* AppDelegate.m */,
F8129C291591073C009BFE23 /* Models */,
F8129C061591061B009BFE23 /* Supporting Files */,
); );
name = Products; name = Classes;
path = "AFNetworking-Mac-Example";
sourceTree = "<group>"; sourceTree = "<group>";
}; };
F8CEEB6D142CEC6E00247B03 /* Frameworks */ = { F8129C061591061B009BFE23 /* Supporting Files */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
F87A15D01444A3EB00318955 /* CoreLocation.framework */, B304CCE7177D58DD00F4FC85 /* adn.cer */,
F8CEEB6E142CEC6E00247B03 /* Cocoa.framework */, F8129C6E15910B15009BFE23 /* main.m */,
F8CEEB70142CEC6E00247B03 /* Other Frameworks */, F8129C7015910B3E009BFE23 /* MainMenu.xib */,
8611E331022F4C3AA09890CC /* libPods.a */,
D30A9AFA1D134BD896376B60 /* libPods.a */,
); );
name = Frameworks; name = "Supporting Files";
sourceTree = "<group>"; sourceTree = "<group>";
}; };
F8CEEB70142CEC6E00247B03 /* Other Frameworks */ = { F8129C291591073C009BFE23 /* Models */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
F8CEEB71142CEC6E00247B03 /* AppKit.framework */, F8129C2A1591073C009BFE23 /* Post.h */,
F8CEEB72142CEC6E00247B03 /* CoreData.framework */, F8129C2B1591073C009BFE23 /* Post.m */,
F8CEEB73142CEC6E00247B03 /* Foundation.framework */, F8129C2C1591073C009BFE23 /* User.h */,
F8129C2D1591073C009BFE23 /* User.m */,
); );
name = "Other Frameworks"; name = Models;
sourceTree = "<group>"; path = Classes/Models;
sourceTree = SOURCE_ROOT;
}; };
/* End PBXGroup section */ /* End PBXGroup section */
/* Begin PBXNativeTarget section */ /* Begin PBXNativeTarget section */
F8CEEB69142CEC6E00247B03 /* AFNetworking Mac Example */ = { F8129BFA1591061B009BFE23 /* AFNetworking Example */ = {
isa = PBXNativeTarget; isa = PBXNativeTarget;
buildConfigurationList = F8CEEB88142CEC6E00247B03 /* Build configuration list for PBXNativeTarget "AFNetworking Mac Example" */; buildConfigurationList = F8129C191591061B009BFE23 /* Build configuration list for PBXNativeTarget "AFNetworking Example" */;
buildPhases = ( buildPhases = (
F8CEEB66142CEC6E00247B03 /* Sources */, 2C1C2E504B564F0D90A4E1D2 /* Check Pods Manifest.lock */,
F8CEEB67142CEC6E00247B03 /* Frameworks */, F8129BF71591061B009BFE23 /* Sources */,
F8CEEB68142CEC6E00247B03 /* Resources */, F8129BF81591061B009BFE23 /* Frameworks */,
EA4ACD0F68074D0289CD79E3 /* Copy Pods Resources */, F8129BF91591061B009BFE23 /* Resources */,
4796F62BE55948D5808E91C5 /* Copy Pods Resources */, CC1632E381344B54BA63986B /* Copy Pods Resources */,
); );
buildRules = ( buildRules = (
); );
dependencies = ( dependencies = (
); );
name = "AFNetworking Mac Example"; name = "AFNetworking Example";
productName = "AFNetworking Mac Example"; productName = "AFNetworking-Mac-Example";
productReference = F8CEEB6A142CEC6E00247B03 /* AFNetworking Mac Example.app */; productReference = F8129BFB1591061B009BFE23 /* AFNetworking Example.app */;
productType = "com.apple.product-type.application"; productType = "com.apple.product-type.application";
}; };
/* End PBXNativeTarget section */ /* End PBXNativeTarget section */
/* Begin PBXProject section */ /* Begin PBXProject section */
F8CEEB61142CEC6E00247B03 /* Project object */ = { F8129BF21591061B009BFE23 /* Project object */ = {
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
LastUpgradeCheck = 0500; LastUpgradeCheck = 0460;
ORGANIZATIONNAME = Gowalla;
}; };
buildConfigurationList = F8CEEB64142CEC6E00247B03 /* Build configuration list for PBXProject "AFNetworking Mac Example" */; buildConfigurationList = F8129BF51591061B009BFE23 /* Build configuration list for PBXProject "AFNetworking Mac Example" */;
compatibilityVersion = "Xcode 3.2"; compatibilityVersion = "Xcode 3.2";
developmentRegion = English; developmentRegion = English;
hasScannedForEncodings = 0; hasScannedForEncodings = 0;
knownRegions = ( knownRegions = (
en, en,
); );
mainGroup = F8CEEB5F142CEC6E00247B03; mainGroup = F8129BF01591061B009BFE23;
productRefGroup = F8CEEB6B142CEC6E00247B03 /* Products */; productRefGroup = F8129BFC1591061B009BFE23 /* Products */;
projectDirPath = ""; projectDirPath = "";
projectRoot = ""; projectRoot = "";
targets = ( targets = (
F8CEEB69142CEC6E00247B03 /* AFNetworking Mac Example */, F8129BFA1591061B009BFE23 /* AFNetworking Example */,
); );
}; };
/* End PBXProject section */ /* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */ /* Begin PBXResourcesBuildPhase section */
F8CEEB68142CEC6E00247B03 /* Resources */ = { F8129BF91591061B009BFE23 /* Resources */ = {
isa = PBXResourcesBuildPhase; isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
F8A27AC9142CFE1300F5E0D6 /* Credits.rtf in Resources */, F8129C7115910B3E009BFE23 /* MainMenu.xib in Resources */,
F8A27ACA142CFE1300F5E0D6 /* MainMenu.xib in Resources */, B304CCE8177D58DD00F4FC85 /* adn.cer in Resources */,
F87A15DD1444A86600318955 /* placeholder-stamp.png in Resources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
/* End PBXResourcesBuildPhase section */ /* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */
4796F62BE55948D5808E91C5 /* Copy Pods Resources */ = { 2C1C2E504B564F0D90A4E1D2 /* Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
); );
inputPaths = ( inputPaths = (
); );
name = "Copy Pods Resources"; name = "Check Pods Manifest.lock";
outputPaths = ( outputPaths = (
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Pods-resources.sh\"\n"; shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n";
showEnvVarsInLog = 0;
}; };
EA4ACD0F68074D0289CD79E3 /* Copy Pods Resources */ = { CC1632E381344B54BA63986B /* Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
...@@ -243,55 +218,34 @@ ...@@ -243,55 +218,34 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Pods-resources.sh\"\n"; shellScript = "\"${SRCROOT}/Pods/Pods-AFNetworking Example-resources.sh\"\n";
showEnvVarsInLog = 0;
}; };
/* End PBXShellScriptBuildPhase section */ /* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */
F8CEEB66142CEC6E00247B03 /* Sources */ = { F8129BF71591061B009BFE23 /* Sources */ = {
isa = PBXSourcesBuildPhase; isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
F8A27AC7142CFE1300F5E0D6 /* AppDelegate.m in Sources */, F8129C341591073C009BFE23 /* Post.m in Sources */,
F8A27AC8142CFE1300F5E0D6 /* main.m in Sources */, F8129C351591073C009BFE23 /* User.m in Sources */,
F87A15CD1444A30800318955 /* AFGowallaAPIClient.m in Sources */, F8129C321591073C009BFE23 /* AFAppDotNetAPIClient.m in Sources */,
F87A15CE1444A30800318955 /* NearbySpotsController.m in Sources */, F8129C6F15910B15009BFE23 /* main.m in Sources */,
F87A15CF1444A30800318955 /* Spot.m in Sources */, F8129C7715910C40009BFE23 /* AppDelegate.m in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
/* End PBXSourcesBuildPhase section */ /* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
F8A27AB9142CFE1300F5E0D6 /* Credits.rtf */ = {
isa = PBXVariantGroup;
children = (
F8A27ABA142CFE1300F5E0D6 /* en */,
);
name = Credits.rtf;
path = en.lproj;
sourceTree = "<group>";
};
F8A27ABB142CFE1300F5E0D6 /* MainMenu.xib */ = {
isa = PBXVariantGroup;
children = (
F8A27ABC142CFE1300F5E0D6 /* en */,
);
name = MainMenu.xib;
path = en.lproj;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */ /* Begin XCBuildConfiguration section */
F8CEEB86142CEC6E00247B03 /* Debug */ = { F8129C171591061B009BFE23 /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
...@@ -307,26 +261,22 @@ ...@@ -307,26 +261,22 @@
GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.6; MACOSX_DEPLOYMENT_TARGET = 10.7;
ONLY_ACTIVE_ARCH = YES; ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx; SDKROOT = macosx;
}; };
name = Debug; name = Debug;
}; };
F8CEEB87142CEC6E00247B03 /* Release */ = { F8129C181591061B009BFE23 /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
...@@ -336,47 +286,40 @@ ...@@ -336,47 +286,40 @@
GCC_ENABLE_OBJC_EXCEPTIONS = YES; GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.6; MACOSX_DEPLOYMENT_TARGET = 10.7;
SDKROOT = macosx; SDKROOT = macosx;
}; };
name = Release; name = Release;
}; };
F8CEEB89142CEC6E00247B03 /* Debug */ = { F8129C1A1591061B009BFE23 /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 7FE1FF99DC1B4295A4C8BD9E /* Pods.xcconfig */; baseConfigurationReference = E74E8E7AFD3F4DCF9FEAB5B4 /* Pods-AFNetworking Example.xcconfig */;
buildSettings = { buildSettings = {
CODE_SIGN_ENTITLEMENTS = "AFNetworking Example.entitlements";
CODE_SIGN_IDENTITY = "";
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
DSTROOT = /tmp/Pods.dst;
GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Prefix.pch; GCC_PREFIX_HEADER = Prefix.pch;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0; INFOPLIST_FILE = "Mac-Info.plist";
INFOPLIST_FILE = Info.plist;
OTHER_LDFLAGS = "";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = app; WRAPPER_EXTENSION = app;
}; };
name = Debug; name = Debug;
}; };
F8CEEB8A142CEC6E00247B03 /* Release */ = { F8129C1B1591061B009BFE23 /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 7FE1FF99DC1B4295A4C8BD9E /* Pods.xcconfig */; baseConfigurationReference = E74E8E7AFD3F4DCF9FEAB5B4 /* Pods-AFNetworking Example.xcconfig */;
buildSettings = { buildSettings = {
CODE_SIGN_ENTITLEMENTS = "AFNetworking Example.entitlements";
CODE_SIGN_IDENTITY = "";
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
DSTROOT = /tmp/Pods.dst;
GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Prefix.pch; GCC_PREFIX_HEADER = Prefix.pch;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0; INFOPLIST_FILE = "Mac-Info.plist";
INFOPLIST_FILE = Info.plist;
OTHER_LDFLAGS = "";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = app; WRAPPER_EXTENSION = app;
}; };
name = Release; name = Release;
...@@ -384,25 +327,25 @@ ...@@ -384,25 +327,25 @@
/* End XCBuildConfiguration section */ /* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */ /* Begin XCConfigurationList section */
F8CEEB64142CEC6E00247B03 /* Build configuration list for PBXProject "AFNetworking Mac Example" */ = { F8129BF51591061B009BFE23 /* Build configuration list for PBXProject "AFNetworking Mac Example" */ = {
isa = XCConfigurationList; isa = XCConfigurationList;
buildConfigurations = ( buildConfigurations = (
F8CEEB86142CEC6E00247B03 /* Debug */, F8129C171591061B009BFE23 /* Debug */,
F8CEEB87142CEC6E00247B03 /* Release */, F8129C181591061B009BFE23 /* Release */,
); );
defaultConfigurationIsVisible = 0; defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release; defaultConfigurationName = Release;
}; };
F8CEEB88142CEC6E00247B03 /* Build configuration list for PBXNativeTarget "AFNetworking Mac Example" */ = { F8129C191591061B009BFE23 /* Build configuration list for PBXNativeTarget "AFNetworking Example" */ = {
isa = XCConfigurationList; isa = XCConfigurationList;
buildConfigurations = ( buildConfigurations = (
F8CEEB89142CEC6E00247B03 /* Debug */, F8129C1A1591061B009BFE23 /* Debug */,
F8CEEB8A142CEC6E00247B03 /* Release */, F8129C1B1591061B009BFE23 /* Release */,
); );
defaultConfigurationIsVisible = 0; defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release; defaultConfigurationName = Release;
}; };
/* End XCConfigurationList section */ /* End XCConfigurationList section */
}; };
rootObject = F8CEEB61142CEC6E00247B03 /* Project object */; rootObject = F8129BF21591061B009BFE23 /* Project object */;
} }
...@@ -14,9 +14,9 @@ ...@@ -14,9 +14,9 @@
buildForAnalyzing = "YES"> buildForAnalyzing = "YES">
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
BlueprintIdentifier = "F8CEEB69142CEC6E00247B03" BlueprintIdentifier = "F8129BFA1591061B009BFE23"
BuildableName = "AFNetworking Mac Example.app" BuildableName = "AFNetworking Example.app"
BlueprintName = "AFNetworking Mac Example" BlueprintName = "AFNetworking Example"
ReferencedContainer = "container:AFNetworking Mac Example.xcodeproj"> ReferencedContainer = "container:AFNetworking Mac Example.xcodeproj">
</BuildableReference> </BuildableReference>
</BuildActionEntry> </BuildActionEntry>
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
</BuildAction> </BuildAction>
<TestAction <TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES" shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug"> buildConfiguration = "Debug">
<Testables> <Testables>
...@@ -32,16 +32,16 @@ ...@@ -32,16 +32,16 @@
<MacroExpansion> <MacroExpansion>
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
BlueprintIdentifier = "F8CEEB69142CEC6E00247B03" BlueprintIdentifier = "F8129BFA1591061B009BFE23"
BuildableName = "AFNetworking Mac Example.app" BuildableName = "AFNetworking Example.app"
BlueprintName = "AFNetworking Mac Example" BlueprintName = "AFNetworking Example"
ReferencedContainer = "container:AFNetworking Mac Example.xcodeproj"> ReferencedContainer = "container:AFNetworking Mac Example.xcodeproj">
</BuildableReference> </BuildableReference>
</MacroExpansion> </MacroExpansion>
</TestAction> </TestAction>
<LaunchAction <LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0" launchStyle = "0"
useCustomWorkingDirectory = "NO" useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug" buildConfiguration = "Debug"
...@@ -51,9 +51,9 @@ ...@@ -51,9 +51,9 @@
<BuildableProductRunnable> <BuildableProductRunnable>
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
BlueprintIdentifier = "F8CEEB69142CEC6E00247B03" BlueprintIdentifier = "F8129BFA1591061B009BFE23"
BuildableName = "AFNetworking Mac Example.app" BuildableName = "AFNetworking Example.app"
BlueprintName = "AFNetworking Mac Example" BlueprintName = "AFNetworking Example"
ReferencedContainer = "container:AFNetworking Mac Example.xcodeproj"> ReferencedContainer = "container:AFNetworking Mac Example.xcodeproj">
</BuildableReference> </BuildableReference>
</BuildableProductRunnable> </BuildableProductRunnable>
...@@ -69,9 +69,9 @@ ...@@ -69,9 +69,9 @@
<BuildableProductRunnable> <BuildableProductRunnable>
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
BlueprintIdentifier = "F8CEEB69142CEC6E00247B03" BlueprintIdentifier = "F8129BFA1591061B009BFE23"
BuildableName = "AFNetworking Mac Example.app" BuildableName = "AFNetworking Example.app"
BlueprintName = "AFNetworking Mac Example" BlueprintName = "AFNetworking Example"
ReferencedContainer = "container:AFNetworking Mac Example.xcodeproj"> ReferencedContainer = "container:AFNetworking Mac Example.xcodeproj">
</BuildableReference> </BuildableReference>
</BuildableProductRunnable> </BuildableProductRunnable>
......
...@@ -7,48 +7,65 @@ ...@@ -7,48 +7,65 @@
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
46CF19E6210948BCAA4F152C /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 242C9E9348A44970B9ECDCF5 /* libPods.a */; }; 2982AD3217107C0000FFF048 /* adn.cer in Resources */ = {isa = PBXBuildFile; fileRef = 2982AD3117107C0000FFF048 /* adn.cer */; };
E5D2E13908F241ABAC3B554B /* libPods-AFNetworking iOS Example.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D87F8FEDE4A4313B0D579A3 /* libPods-AFNetworking iOS Example.a */; };
F8129C7415910C37009BFE23 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F8129C7215910C37009BFE23 /* AppDelegate.m */; };
F818101615E6A0C600EF93C2 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ABD6EC159FC2CE001BE42C /* MobileCoreServices.framework */; };
F88812F016C533D6003C8B8C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8E469E013957DF100DB05C8 /* Security.framework */; };
F8A847C1161F51A300940F39 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F8A847C0161F51A300940F39 /* Default-568h@2x.png */; };
F8A847C3161F523E00940F39 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = F8A847C2161F523E00940F39 /* Default.png */; };
F8A847C5161F524200940F39 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F8A847C4161F524200940F39 /* Default@2x.png */; };
F8D0701B14310F4A00653FD3 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8E469E213957DF700DB05C8 /* SystemConfiguration.framework */; }; F8D0701B14310F4A00653FD3 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8E469E213957DF700DB05C8 /* SystemConfiguration.framework */; };
F8D0701C14310F4F00653FD3 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8E469E013957DF100DB05C8 /* Security.framework */; };
F8D25D191396A9D300CF3BD6 /* placeholder-stamp.png in Resources */ = {isa = PBXBuildFile; fileRef = F8D25D171396A9D300CF3BD6 /* placeholder-stamp.png */; };
F8D25D1A1396A9D300CF3BD6 /* placeholder-stamp@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F8D25D181396A9D300CF3BD6 /* placeholder-stamp@2x.png */; };
F8DA09D21396ABED0057D0CC /* AFGowallaAPIClient.m in Sources */ = {isa = PBXBuildFile; fileRef = F8D25D1D1396A9DE00CF3BD6 /* AFGowallaAPIClient.m */; };
F8DA09D41396ABED0057D0CC /* NearbySpotsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F8DA09C81396AB690057D0CC /* NearbySpotsViewController.m */; };
F8DA09D51396ABED0057D0CC /* Spot.m in Sources */ = {isa = PBXBuildFile; fileRef = F8DA09CB1396AB690057D0CC /* Spot.m */; };
F8DA09D61396ABED0057D0CC /* SpotTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F8DA09CE1396AB690057D0CC /* SpotTableViewCell.m */; };
F8DA09E41396AC040057D0CC /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = F8DA09E31396AC040057D0CC /* main.m */; }; F8DA09E41396AC040057D0CC /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = F8DA09E31396AC040057D0CC /* main.m */; };
F8DA09E81396AC220057D0CC /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F8DA09E71396AC220057D0CC /* AppDelegate.m */; };
F8E469651395739D00DB05C8 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8E469641395739D00DB05C8 /* UIKit.framework */; }; F8E469651395739D00DB05C8 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8E469641395739D00DB05C8 /* UIKit.framework */; };
F8E469671395739D00DB05C8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8E469661395739D00DB05C8 /* Foundation.framework */; }; F8E469671395739D00DB05C8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8E469661395739D00DB05C8 /* Foundation.framework */; };
F8E469691395739D00DB05C8 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8E469681395739D00DB05C8 /* CoreGraphics.framework */; }; F8E469691395739D00DB05C8 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8E469681395739D00DB05C8 /* CoreGraphics.framework */; };
F8E469DF13957DD500DB05C8 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8E469DE13957DD500DB05C8 /* CoreLocation.framework */; }; F8E469DF13957DD500DB05C8 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8E469DE13957DD500DB05C8 /* CoreLocation.framework */; };
F8F6E8DC1463424800AD016F /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = F8F6E8D81463424800AD016F /* Icon.png */; };
F8F6E8DD1463424800AD016F /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F8F6E8D91463424800AD016F /* Icon@2x.png */; };
F8FA9491150EF8C100ED4EAD /* AFAppDotNetAPIClient.m in Sources */ = {isa = PBXBuildFile; fileRef = F8FA9490150EF8C100ED4EAD /* AFAppDotNetAPIClient.m */; };
F8FA9494150EF97E00ED4EAD /* Post.m in Sources */ = {isa = PBXBuildFile; fileRef = F8FA9493150EF97E00ED4EAD /* Post.m */; };
F8FA9497150EF98800ED4EAD /* User.m in Sources */ = {isa = PBXBuildFile; fileRef = F8FA9496150EF98800ED4EAD /* User.m */; };
F8FA949A150EF9DA00ED4EAD /* GlobalTimelineViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F8FA9499150EF9DA00ED4EAD /* GlobalTimelineViewController.m */; };
F8FA94C1150F019100ED4EAD /* PostTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F8FA94C0150F019100ED4EAD /* PostTableViewCell.m */; };
F8FA94D0150F094D00ED4EAD /* profile-image-placeholder.png in Resources */ = {isa = PBXBuildFile; fileRef = F8FA94CC150F094D00ED4EAD /* profile-image-placeholder.png */; };
F8FA94D1150F094D00ED4EAD /* profile-image-placeholder@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F8FA94CD150F094D00ED4EAD /* profile-image-placeholder@2x.png */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
242C9E9348A44970B9ECDCF5 /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; 2982AD3117107C0000FFF048 /* adn.cer */ = {isa = PBXFileReference; lastKnownFileType = file; path = adn.cer; sourceTree = SOURCE_ROOT; };
391552C2BD5947DF9FEB5975 /* Pods.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Pods.xcconfig; path = Pods/Pods.xcconfig; sourceTree = SOURCE_ROOT; }; 50ABD6EC159FC2CE001BE42C /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
F8D25D171396A9D300CF3BD6 /* placeholder-stamp.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "placeholder-stamp.png"; path = "Images/placeholder-stamp.png"; sourceTree = SOURCE_ROOT; }; 9D87F8FEDE4A4313B0D579A3 /* libPods-AFNetworking iOS Example.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AFNetworking iOS Example.a"; sourceTree = BUILT_PRODUCTS_DIR; };
F8D25D181396A9D300CF3BD6 /* placeholder-stamp@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "placeholder-stamp@2x.png"; path = "Images/placeholder-stamp@2x.png"; sourceTree = SOURCE_ROOT; }; AE3A9F4CC86440AAA3CF5792 /* Pods-AFNetworking iOS Example.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AFNetworking iOS Example.xcconfig"; path = "Pods/Pods-AFNetworking iOS Example.xcconfig"; sourceTree = "<group>"; };
F8D25D1B1396A9DE00CF3BD6 /* AFGowallaAPIClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AFGowallaAPIClient.h; path = Classes/AFGowallaAPIClient.h; sourceTree = "<group>"; }; F8129C3815910830009BFE23 /* Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Prefix.pch; sourceTree = SOURCE_ROOT; };
F8D25D1D1396A9DE00CF3BD6 /* AFGowallaAPIClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AFGowallaAPIClient.m; path = Classes/AFGowallaAPIClient.m; sourceTree = "<group>"; }; F8129C7215910C37009BFE23 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = SOURCE_ROOT; };
F8DA09C71396AB690057D0CC /* NearbySpotsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NearbySpotsViewController.h; sourceTree = "<group>"; }; F8129C7315910C37009BFE23 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = SOURCE_ROOT; };
F8DA09C81396AB690057D0CC /* NearbySpotsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NearbySpotsViewController.m; sourceTree = "<group>"; }; F8A847C0161F51A300940F39 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; };
F8DA09CA1396AB690057D0CC /* Spot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Spot.h; sourceTree = "<group>"; }; F8A847C2161F523E00940F39 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
F8DA09CB1396AB690057D0CC /* Spot.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Spot.m; sourceTree = "<group>"; }; F8A847C4161F524200940F39 /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = "<group>"; };
F8DA09CD1396AB690057D0CC /* SpotTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SpotTableViewCell.h; sourceTree = "<group>"; };
F8DA09CE1396AB690057D0CC /* SpotTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SpotTableViewCell.m; sourceTree = "<group>"; };
F8DA09E31396AC040057D0CC /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = SOURCE_ROOT; }; F8DA09E31396AC040057D0CC /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = SOURCE_ROOT; };
F8DA09E51396AC220057D0CC /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = SOURCE_ROOT; };
F8DA09E61396AC220057D0CC /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Prefix.pch; sourceTree = SOURCE_ROOT; };
F8DA09E71396AC220057D0CC /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = SOURCE_ROOT; };
F8E469601395739C00DB05C8 /* AFNetworking iOS Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "AFNetworking iOS Example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; F8E469601395739C00DB05C8 /* AFNetworking iOS Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "AFNetworking iOS Example.app"; sourceTree = BUILT_PRODUCTS_DIR; };
F8E469641395739D00DB05C8 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; F8E469641395739D00DB05C8 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
F8E469661395739D00DB05C8 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; F8E469661395739D00DB05C8 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
F8E469681395739D00DB05C8 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; F8E469681395739D00DB05C8 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
F8E4696C1395739D00DB05C8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; F8E4696C1395739D00DB05C8 /* iOS-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "iOS-Info.plist"; sourceTree = "<group>"; };
F8E469DE13957DD500DB05C8 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; F8E469DE13957DD500DB05C8 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; };
F8E469E013957DF100DB05C8 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; F8E469E013957DF100DB05C8 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
F8E469E213957DF700DB05C8 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; F8E469E213957DF700DB05C8 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
F8F6E8D81463424800AD016F /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Icon.png; sourceTree = SOURCE_ROOT; };
F8F6E8D91463424800AD016F /* Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon@2x.png"; sourceTree = SOURCE_ROOT; };
F8FA948F150EF8C100ED4EAD /* AFAppDotNetAPIClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AFAppDotNetAPIClient.h; path = Classes/AFAppDotNetAPIClient.h; sourceTree = "<group>"; };
F8FA9490150EF8C100ED4EAD /* AFAppDotNetAPIClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AFAppDotNetAPIClient.m; path = Classes/AFAppDotNetAPIClient.m; sourceTree = "<group>"; };
F8FA9492150EF97E00ED4EAD /* Post.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Post.h; sourceTree = "<group>"; };
F8FA9493150EF97E00ED4EAD /* Post.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Post.m; sourceTree = "<group>"; };
F8FA9495150EF98800ED4EAD /* User.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = "<group>"; };
F8FA9496150EF98800ED4EAD /* User.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = User.m; sourceTree = "<group>"; };
F8FA9498150EF9DA00ED4EAD /* GlobalTimelineViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GlobalTimelineViewController.h; sourceTree = "<group>"; };
F8FA9499150EF9DA00ED4EAD /* GlobalTimelineViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GlobalTimelineViewController.m; sourceTree = "<group>"; };
F8FA94BF150F019100ED4EAD /* PostTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PostTableViewCell.h; sourceTree = "<group>"; };
F8FA94C0150F019100ED4EAD /* PostTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PostTableViewCell.m; sourceTree = "<group>"; };
F8FA94CC150F094D00ED4EAD /* profile-image-placeholder.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "profile-image-placeholder.png"; path = "Images/profile-image-placeholder.png"; sourceTree = SOURCE_ROOT; };
F8FA94CD150F094D00ED4EAD /* profile-image-placeholder@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "profile-image-placeholder@2x.png"; path = "Images/profile-image-placeholder@2x.png"; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
...@@ -56,13 +73,14 @@ ...@@ -56,13 +73,14 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
F88812F016C533D6003C8B8C /* Security.framework in Frameworks */,
F8E469651395739D00DB05C8 /* UIKit.framework in Frameworks */, F8E469651395739D00DB05C8 /* UIKit.framework in Frameworks */,
F8E469671395739D00DB05C8 /* Foundation.framework in Frameworks */, F8E469671395739D00DB05C8 /* Foundation.framework in Frameworks */,
F8E469691395739D00DB05C8 /* CoreGraphics.framework in Frameworks */, F8E469691395739D00DB05C8 /* CoreGraphics.framework in Frameworks */,
F8E469DF13957DD500DB05C8 /* CoreLocation.framework in Frameworks */, F8E469DF13957DD500DB05C8 /* CoreLocation.framework in Frameworks */,
F8D0701B14310F4A00653FD3 /* SystemConfiguration.framework in Frameworks */, F8D0701B14310F4A00653FD3 /* SystemConfiguration.framework in Frameworks */,
F8D0701C14310F4F00653FD3 /* Security.framework in Frameworks */, F818101615E6A0C600EF93C2 /* MobileCoreServices.framework in Frameworks */,
46CF19E6210948BCAA4F152C /* libPods.a in Frameworks */, E5D2E13908F241ABAC3B554B /* libPods-AFNetworking iOS Example.a in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
...@@ -72,8 +90,8 @@ ...@@ -72,8 +90,8 @@
F8DA09C61396AB690057D0CC /* Controllers */ = { F8DA09C61396AB690057D0CC /* Controllers */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
F8DA09C71396AB690057D0CC /* NearbySpotsViewController.h */, F8FA9498150EF9DA00ED4EAD /* GlobalTimelineViewController.h */,
F8DA09C81396AB690057D0CC /* NearbySpotsViewController.m */, F8FA9499150EF9DA00ED4EAD /* GlobalTimelineViewController.m */,
); );
name = Controllers; name = Controllers;
path = Classes/Controllers; path = Classes/Controllers;
...@@ -82,8 +100,10 @@ ...@@ -82,8 +100,10 @@
F8DA09C91396AB690057D0CC /* Models */ = { F8DA09C91396AB690057D0CC /* Models */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
F8DA09CA1396AB690057D0CC /* Spot.h */, F8FA9492150EF97E00ED4EAD /* Post.h */,
F8DA09CB1396AB690057D0CC /* Spot.m */, F8FA9493150EF97E00ED4EAD /* Post.m */,
F8FA9495150EF98800ED4EAD /* User.h */,
F8FA9496150EF98800ED4EAD /* User.m */,
); );
name = Models; name = Models;
path = Classes/Models; path = Classes/Models;
...@@ -92,8 +112,8 @@ ...@@ -92,8 +112,8 @@
F8DA09CC1396AB690057D0CC /* Views */ = { F8DA09CC1396AB690057D0CC /* Views */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
F8DA09CD1396AB690057D0CC /* SpotTableViewCell.h */, F8FA94BF150F019100ED4EAD /* PostTableViewCell.h */,
F8DA09CE1396AB690057D0CC /* SpotTableViewCell.m */, F8FA94C0150F019100ED4EAD /* PostTableViewCell.m */,
); );
name = Views; name = Views;
path = Classes/Views; path = Classes/Views;
...@@ -102,14 +122,20 @@ ...@@ -102,14 +122,20 @@
F8E469551395739C00DB05C8 = { F8E469551395739C00DB05C8 = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
F8A847C2161F523E00940F39 /* Default.png */,
F8A847C4161F524200940F39 /* Default@2x.png */,
F8A847C0161F51A300940F39 /* Default-568h@2x.png */,
F8E469B71395759C00DB05C8 /* Networking Extensions */, F8E469B71395759C00DB05C8 /* Networking Extensions */,
F8E4696A1395739D00DB05C8 /* Classes */, F8E4696A1395739D00DB05C8 /* Classes */,
F8E469ED1395812A00DB05C8 /* Images */, F8E469ED1395812A00DB05C8 /* Images */,
F8E469631395739D00DB05C8 /* Frameworks */, F8E469631395739D00DB05C8 /* Frameworks */,
F8E469611395739C00DB05C8 /* Products */, F8E469611395739C00DB05C8 /* Products */,
391552C2BD5947DF9FEB5975 /* Pods.xcconfig */, AE3A9F4CC86440AAA3CF5792 /* Pods-AFNetworking iOS Example.xcconfig */,
); );
indentWidth = 4;
sourceTree = "<group>"; sourceTree = "<group>";
tabWidth = 4;
usesTabs = 0;
}; };
F8E469611395739C00DB05C8 /* Products */ = { F8E469611395739C00DB05C8 /* Products */ = {
isa = PBXGroup; isa = PBXGroup;
...@@ -122,13 +148,14 @@ ...@@ -122,13 +148,14 @@
F8E469631395739D00DB05C8 /* Frameworks */ = { F8E469631395739D00DB05C8 /* Frameworks */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
50ABD6EC159FC2CE001BE42C /* MobileCoreServices.framework */,
F8E469E213957DF700DB05C8 /* SystemConfiguration.framework */, F8E469E213957DF700DB05C8 /* SystemConfiguration.framework */,
F8E469E013957DF100DB05C8 /* Security.framework */, F8E469E013957DF100DB05C8 /* Security.framework */,
F8E469DE13957DD500DB05C8 /* CoreLocation.framework */, F8E469DE13957DD500DB05C8 /* CoreLocation.framework */,
F8E469641395739D00DB05C8 /* UIKit.framework */, F8E469641395739D00DB05C8 /* UIKit.framework */,
F8E469661395739D00DB05C8 /* Foundation.framework */, F8E469661395739D00DB05C8 /* Foundation.framework */,
F8E469681395739D00DB05C8 /* CoreGraphics.framework */, F8E469681395739D00DB05C8 /* CoreGraphics.framework */,
242C9E9348A44970B9ECDCF5 /* libPods.a */, 9D87F8FEDE4A4313B0D579A3 /* libPods-AFNetworking iOS Example.a */,
); );
name = Frameworks; name = Frameworks;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -136,9 +163,11 @@ ...@@ -136,9 +163,11 @@
F8E4696A1395739D00DB05C8 /* Classes */ = { F8E4696A1395739D00DB05C8 /* Classes */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
F8DA09C61396AB690057D0CC /* Controllers */, F8129C7315910C37009BFE23 /* AppDelegate.h */,
F8129C7215910C37009BFE23 /* AppDelegate.m */,
F8DA09C91396AB690057D0CC /* Models */, F8DA09C91396AB690057D0CC /* Models */,
F8DA09CC1396AB690057D0CC /* Views */, F8DA09CC1396AB690057D0CC /* Views */,
F8DA09C61396AB690057D0CC /* Controllers */,
F8E4696B1395739D00DB05C8 /* Supporting Files */, F8E4696B1395739D00DB05C8 /* Supporting Files */,
); );
name = Classes; name = Classes;
...@@ -148,11 +177,10 @@ ...@@ -148,11 +177,10 @@
F8E4696B1395739D00DB05C8 /* Supporting Files */ = { F8E4696B1395739D00DB05C8 /* Supporting Files */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
2982AD3117107C0000FFF048 /* adn.cer */,
F8DA09E31396AC040057D0CC /* main.m */, F8DA09E31396AC040057D0CC /* main.m */,
F8DA09E61396AC220057D0CC /* Prefix.pch */, F8129C3815910830009BFE23 /* Prefix.pch */,
F8DA09E51396AC220057D0CC /* AppDelegate.h */, F8E4696C1395739D00DB05C8 /* iOS-Info.plist */,
F8DA09E71396AC220057D0CC /* AppDelegate.m */,
F8E4696C1395739D00DB05C8 /* Info.plist */,
); );
name = "Supporting Files"; name = "Supporting Files";
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -160,8 +188,8 @@ ...@@ -160,8 +188,8 @@
F8E469B71395759C00DB05C8 /* Networking Extensions */ = { F8E469B71395759C00DB05C8 /* Networking Extensions */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
F8D25D1B1396A9DE00CF3BD6 /* AFGowallaAPIClient.h */, F8FA948F150EF8C100ED4EAD /* AFAppDotNetAPIClient.h */,
F8D25D1D1396A9DE00CF3BD6 /* AFGowallaAPIClient.m */, F8FA9490150EF8C100ED4EAD /* AFAppDotNetAPIClient.m */,
); );
name = "Networking Extensions"; name = "Networking Extensions";
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -169,8 +197,10 @@ ...@@ -169,8 +197,10 @@
F8E469ED1395812A00DB05C8 /* Images */ = { F8E469ED1395812A00DB05C8 /* Images */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
F8D25D171396A9D300CF3BD6 /* placeholder-stamp.png */, F8F6E8D81463424800AD016F /* Icon.png */,
F8D25D181396A9D300CF3BD6 /* placeholder-stamp@2x.png */, F8F6E8D91463424800AD016F /* Icon@2x.png */,
F8FA94CC150F094D00ED4EAD /* profile-image-placeholder.png */,
F8FA94CD150F094D00ED4EAD /* profile-image-placeholder@2x.png */,
); );
name = Images; name = Images;
path = AFNetworkingExample/Images; path = AFNetworkingExample/Images;
...@@ -183,11 +213,11 @@ ...@@ -183,11 +213,11 @@
isa = PBXNativeTarget; isa = PBXNativeTarget;
buildConfigurationList = F8E469811395739D00DB05C8 /* Build configuration list for PBXNativeTarget "AFNetworking iOS Example" */; buildConfigurationList = F8E469811395739D00DB05C8 /* Build configuration list for PBXNativeTarget "AFNetworking iOS Example" */;
buildPhases = ( buildPhases = (
E4419DF1E8B742E49777FFE0 /* Check Pods Manifest.lock */,
F8E4695C1395739C00DB05C8 /* Sources */, F8E4695C1395739C00DB05C8 /* Sources */,
F8E4695D1395739C00DB05C8 /* Frameworks */, F8E4695D1395739C00DB05C8 /* Frameworks */,
F8E4695E1395739C00DB05C8 /* Resources */, F8E4695E1395739C00DB05C8 /* Resources */,
DD5E268688D543178A339BEB /* Copy Pods Resources */, 226FE837057C4F98AD9FFB32 /* Copy Pods Resources */,
8A3A8D61FF1041A3B3AA9C55 /* Copy Pods Resources */,
); );
buildRules = ( buildRules = (
); );
...@@ -229,15 +259,21 @@ ...@@ -229,15 +259,21 @@
isa = PBXResourcesBuildPhase; isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
F8D25D191396A9D300CF3BD6 /* placeholder-stamp.png in Resources */, F8F6E8DC1463424800AD016F /* Icon.png in Resources */,
F8D25D1A1396A9D300CF3BD6 /* placeholder-stamp@2x.png in Resources */, F8F6E8DD1463424800AD016F /* Icon@2x.png in Resources */,
F8FA94D0150F094D00ED4EAD /* profile-image-placeholder.png in Resources */,
F8FA94D1150F094D00ED4EAD /* profile-image-placeholder@2x.png in Resources */,
F8A847C1161F51A300940F39 /* Default-568h@2x.png in Resources */,
F8A847C3161F523E00940F39 /* Default.png in Resources */,
F8A847C5161F524200940F39 /* Default@2x.png in Resources */,
2982AD3217107C0000FFF048 /* adn.cer in Resources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
/* End PBXResourcesBuildPhase section */ /* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */
8A3A8D61FF1041A3B3AA9C55 /* Copy Pods Resources */ = { 226FE837057C4F98AD9FFB32 /* Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
...@@ -249,21 +285,23 @@ ...@@ -249,21 +285,23 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Pods-resources.sh\"\n"; shellScript = "\"${SRCROOT}/Pods/Pods-AFNetworking iOS Example-resources.sh\"\n";
showEnvVarsInLog = 0;
}; };
DD5E268688D543178A339BEB /* Copy Pods Resources */ = { E4419DF1E8B742E49777FFE0 /* Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
); );
inputPaths = ( inputPaths = (
); );
name = "Copy Pods Resources"; name = "Check Pods Manifest.lock";
outputPaths = ( outputPaths = (
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Pods-resources.sh\"\n"; shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n";
showEnvVarsInLog = 0;
}; };
/* End PBXShellScriptBuildPhase section */ /* End PBXShellScriptBuildPhase section */
...@@ -272,12 +310,13 @@ ...@@ -272,12 +310,13 @@
isa = PBXSourcesBuildPhase; isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
F8DA09D21396ABED0057D0CC /* AFGowallaAPIClient.m in Sources */,
F8DA09D41396ABED0057D0CC /* NearbySpotsViewController.m in Sources */,
F8DA09D51396ABED0057D0CC /* Spot.m in Sources */,
F8DA09D61396ABED0057D0CC /* SpotTableViewCell.m in Sources */,
F8DA09E41396AC040057D0CC /* main.m in Sources */, F8DA09E41396AC040057D0CC /* main.m in Sources */,
F8DA09E81396AC220057D0CC /* AppDelegate.m in Sources */, F8FA9491150EF8C100ED4EAD /* AFAppDotNetAPIClient.m in Sources */,
F8FA9494150EF97E00ED4EAD /* Post.m in Sources */,
F8FA9497150EF98800ED4EAD /* User.m in Sources */,
F8FA949A150EF9DA00ED4EAD /* GlobalTimelineViewController.m in Sources */,
F8FA94C1150F019100ED4EAD /* PostTableViewCell.m in Sources */,
F8129C7415910C37009BFE23 /* AppDelegate.m in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
...@@ -317,11 +356,11 @@ ...@@ -317,11 +356,11 @@
}; };
F8E469821395739D00DB05C8 /* Debug */ = { F8E469821395739D00DB05C8 /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 391552C2BD5947DF9FEB5975 /* Pods.xcconfig */; baseConfigurationReference = AE3A9F4CC86440AAA3CF5792 /* Pods-AFNetworking iOS Example.xcconfig */;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ENABLE_OBJC_ARC = YES;
COPY_PHASE_STRIP = NO; COPY_PHASE_STRIP = NO;
DSTROOT = /tmp/Pods.dst;
GCC_DYNAMIC_NO_PIC = NO; GCC_DYNAMIC_NO_PIC = NO;
GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Prefix.pch; GCC_PREFIX_HEADER = Prefix.pch;
...@@ -329,30 +368,32 @@ ...@@ -329,30 +368,32 @@
GCC_WARN_SHADOW = YES; GCC_WARN_SHADOW = YES;
GCC_WARN_SIGN_COMPARE = YES; GCC_WARN_SIGN_COMPARE = YES;
GCC_WARN_UNUSED_PARAMETER = NO; GCC_WARN_UNUSED_PARAMETER = NO;
INFOPLIST_FILE = Info.plist; INFOPLIST_FILE = "iOS-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 5.0;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES; WARNING_CFLAGS = "";
WRAPPER_EXTENSION = app; WRAPPER_EXTENSION = app;
}; };
name = Debug; name = Debug;
}; };
F8E469831395739D00DB05C8 /* Release */ = { F8E469831395739D00DB05C8 /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 391552C2BD5947DF9FEB5975 /* Pods.xcconfig */; baseConfigurationReference = AE3A9F4CC86440AAA3CF5792 /* Pods-AFNetworking iOS Example.xcconfig */;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ENABLE_OBJC_ARC = YES;
COPY_PHASE_STRIP = YES; COPY_PHASE_STRIP = YES;
DSTROOT = /tmp/Pods.dst;
GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Prefix.pch; GCC_PREFIX_HEADER = Prefix.pch;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_SHADOW = YES; GCC_WARN_SHADOW = YES;
GCC_WARN_SIGN_COMPARE = YES; GCC_WARN_SIGN_COMPARE = YES;
GCC_WARN_UNUSED_PARAMETER = NO; GCC_WARN_UNUSED_PARAMETER = NO;
INFOPLIST_FILE = Info.plist; INFOPLIST_FILE = "iOS-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 5.0;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
VALIDATE_PRODUCT = YES; VALIDATE_PRODUCT = YES;
WARNING_CFLAGS = "";
WRAPPER_EXTENSION = app; WRAPPER_EXTENSION = app;
}; };
name = Release; name = Release;
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
</BuildAction> </BuildAction>
<TestAction <TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES" shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug"> buildConfiguration = "Debug">
<Testables> <Testables>
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
</TestAction> </TestAction>
<LaunchAction <LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0" launchStyle = "0"
useCustomWorkingDirectory = "NO" useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug" buildConfiguration = "Debug"
......
// AFNetworkingExampleAppDelegate.h // AppDelegate.h
// //
// Copyright (c) 2011 Gowalla (http://gowalla.com/) // Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
// //
// Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal // of this software and associated documentation files (the "Software"), to deal
...@@ -20,13 +20,25 @@ ...@@ -20,13 +20,25 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE. // THE SOFTWARE.
#import <UIKit/UIKit.h> #import <Availability.h>
@interface AppDelegate : NSObject <UIApplicationDelegate> { #if __IPHONE_OS_VERSION_MIN_REQUIRED
#import <UIKit/UIKit.h>
} @interface AppDelegate : NSObject <UIApplicationDelegate>
@property (nonatomic, retain) UIWindow *window; @property (nonatomic, strong) UIWindow *window;
@property (nonatomic, retain) UINavigationController *navigationController; @property (nonatomic, strong) UINavigationController *navigationController;
@end @end
#else
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate>
@property (strong) IBOutlet NSWindow *window;
@property (strong) IBOutlet NSTableView *tableView;
@property (strong) IBOutlet NSArrayController *postsArrayController;
@end
#endif
// AppDelegate.m
//
// Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
#import "AppDelegate.h"
#if __IPHONE_OS_VERSION_MIN_REQUIRED
#import "GlobalTimelineViewController.h"
#import "AFNetworkActivityIndicatorManager.h"
@implementation AppDelegate
@synthesize window = _window;
@synthesize navigationController = _navigationController;
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSURLCache *URLCache = [[NSURLCache alloc] initWithMemoryCapacity:4 * 1024 * 1024 diskCapacity:20 * 1024 * 1024 diskPath:nil];
[NSURLCache setSharedURLCache:URLCache];
[[AFNetworkActivityIndicatorManager sharedManager] setEnabled:YES];
UITableViewController *viewController = [[GlobalTimelineViewController alloc] initWithStyle:UITableViewStylePlain];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
self.navigationController.navigationBar.tintColor = [UIColor darkGrayColor];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
}
@end
#else
#import "Post.h"
#import "User.h"
@implementation AppDelegate
@synthesize window = _window;
@synthesize tableView = _tableView;
@synthesize postsArrayController = _postsArrayController;
- (void)applicationDidFinishLaunching:(NSNotification *)notification {
NSURLCache *URLCache = [[NSURLCache alloc] initWithMemoryCapacity:4 * 1024 * 1024 diskCapacity:20 * 1024 * 1024 diskPath:nil];
[NSURLCache setSharedURLCache:URLCache];
[self.window makeKeyAndOrderFront:self];
[Post globalTimelinePostsWithBlock:^(NSArray *posts, NSError *error) {
if (error) {
[[NSAlert alertWithMessageText:NSLocalizedString(@"Error", nil) defaultButton:NSLocalizedString(@"OK", nil) alternateButton:nil otherButton:nil informativeTextWithFormat:@"%@",[error localizedDescription]] runModal];
}
self.postsArrayController.content = posts;
}];
[[NSNotificationCenter defaultCenter] addObserverForName:kUserProfileImageDidLoadNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *notification) {
[self.tableView reloadData];
}];
}
- (BOOL)applicationShouldHandleReopen:(NSApplication *)application
hasVisibleWindows:(BOOL)flag
{
[self.window makeKeyAndOrderFront:self];
return YES;
}
@end
#endif
// AppDelegate.m // AFAppDotNetAPIClient.h
// //
// Copyright (c) 2011 Gowalla (http://gowalla.com/) // Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
// //
// Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal // of this software and associated documentation files (the "Software"), to deal
...@@ -20,14 +20,11 @@ ...@@ -20,14 +20,11 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE. // THE SOFTWARE.
#import <Foundation/Foundation.h>
#import "AFHTTPClient.h"
#import "AppDelegate.h" @interface AFAppDotNetAPIClient : AFHTTPClient
@implementation AppDelegate + (AFAppDotNetAPIClient *)sharedClient;
@synthesize window = _window;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
}
@end @end
// AFGowallaAPI.m // AFAppDotNetAPIClient.h
// //
// Copyright (c) 2011 Gowalla (http://gowalla.com/) // Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
// //
// Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal // of this software and associated documentation files (the "Software"), to deal
...@@ -20,22 +20,19 @@ ...@@ -20,22 +20,19 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE. // THE SOFTWARE.
#import "AFGowallaAPIClient.h" #import "AFAppDotNetAPIClient.h"
#import "AFJSONRequestOperation.h" #import "AFJSONRequestOperation.h"
// Replace this with your own API Key, available at http://api.gowalla.com/api/keys/ static NSString * const kAFAppDotNetAPIBaseURLString = @"https://alpha-api.app.net/";
NSString * const kAFGowallaClientID = @"e7ccb7d3d2414eb2af4663fc91eb2793";
NSString * const kAFGowallaBaseURLString = @"https://api.gowalla.com/"; @implementation AFAppDotNetAPIClient
@implementation AFGowallaAPIClient + (AFAppDotNetAPIClient *)sharedClient {
static AFAppDotNetAPIClient *_sharedClient = nil;
+ (AFGowallaAPIClient *)sharedClient { static dispatch_once_t onceToken;
static AFGowallaAPIClient *_sharedClient = nil; dispatch_once(&onceToken, ^{
static dispatch_once_t oncePredicate; _sharedClient = [[AFAppDotNetAPIClient alloc] initWithBaseURL:[NSURL URLWithString:kAFAppDotNetAPIBaseURLString]];
dispatch_once(&oncePredicate, ^{
_sharedClient = [[self alloc] initWithBaseURL:[NSURL URLWithString:kAFGowallaBaseURLString]];
}); });
return _sharedClient; return _sharedClient;
...@@ -51,13 +48,14 @@ NSString * const kAFGowallaBaseURLString = @"https://api.gowalla.com/"; ...@@ -51,13 +48,14 @@ NSString * const kAFGowallaBaseURLString = @"https://api.gowalla.com/";
// Accept HTTP Header; see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1 // Accept HTTP Header; see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1
[self setDefaultHeader:@"Accept" value:@"application/json"]; [self setDefaultHeader:@"Accept" value:@"application/json"];
// By default, the example ships with SSL pinning enabled for the app.net API pinned against the public key of adn.cer file included with the example. In order to make it easier for developers who are new to AFNetworking, SSL pinning is automatically disabled if the base URL has been changed. This will allow developers to hack around with the example, without getting tripped up by SSL pinning.
if ([[url scheme] isEqualToString:@"https"] && [[url host] isEqualToString:@"alpha-api.app.net"]) {
self.defaultSSLPinningMode = AFSSLPinningModePublicKey;
} else {
self.defaultSSLPinningMode = AFSSLPinningModeNone;
}
// X-Gowalla-API-Key HTTP Header; see http://api.gowalla.com/api/docs
[self setDefaultHeader:@"X-Gowalla-API-Key" value:kAFGowallaClientID];
// X-Gowalla-API-Version HTTP Header; see http://api.gowalla.com/api/docs
[self setDefaultHeader:@"X-Gowalla-API-Version" value:@"1"];
return self; return self;
} }
......
// SpotTableViewCell.h // GlobalTimelineViewController.h
// //
// Copyright (c) 2011 Gowalla (http://gowalla.com/) // Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
// //
// Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal // of this software and associated documentation files (the "Software"), to deal
...@@ -22,10 +22,6 @@ ...@@ -22,10 +22,6 @@
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
@class Spot; @interface GlobalTimelineViewController : UITableViewController
@interface SpotTableViewCell : UITableViewCell
@property (nonatomic, retain) Spot *spot;
@end @end
// NearbySpotsViewController.m // GlobalTimelineViewController.m
// //
// Copyright (c) 2011 Gowalla (http://gowalla.com/) // Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
// //
// Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal // of this software and associated documentation files (the "Software"), to deal
...@@ -20,168 +20,91 @@ ...@@ -20,168 +20,91 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE. // THE SOFTWARE.
#import "NearbySpotsViewController.h" #import "GlobalTimelineViewController.h"
#import "Spot.h" #import "Post.h"
#import "SpotTableViewCell.h" #import "PostTableViewCell.h"
#import "TTTLocationFormatter.h" @interface GlobalTimelineViewController ()
#import "AFImageCache.h" - (void)reload:(id)sender;
#import "UIImageView+AFNetworking.h"
@interface NearbySpotsViewController ()
@property (readwrite, nonatomic, retain) NSArray *nearbySpots;
@property (readwrite, nonatomic, retain) CLLocationManager *locationManager;
@property (readwrite, nonatomic, retain) UIActivityIndicatorView *activityIndicatorView;
- (void)loadSpotsForLocation:(CLLocation *)location;
- (void)refresh:(id)sender;
@end @end
@implementation NearbySpotsViewController @implementation GlobalTimelineViewController {
@synthesize nearbySpots = _spots; @private
@synthesize locationManager = _locationManager; NSArray *_posts;
@synthesize activityIndicatorView = _activityIndicatorView;
- (id)init {
self = [super init];
if (!self) {
return nil;
}
self.nearbySpots = [NSArray array];
self.locationManager = [[[CLLocationManager alloc] init] autorelease]; __strong UIActivityIndicatorView *_activityIndicatorView;
self.locationManager.delegate = self;
self.locationManager.distanceFilter = 80.0;
return self;
}
- (void)dealloc {
[_spots release];
[_locationManager release];
[_activityIndicatorView release];
[super dealloc];
} }
- (void)loadSpotsForLocation:(CLLocation *)location { - (void)reload:(id)sender {
[self.activityIndicatorView startAnimating]; [_activityIndicatorView startAnimating];
self.navigationItem.rightBarButtonItem.enabled = NO; self.navigationItem.rightBarButtonItem.enabled = NO;
[Spot spotsWithURLString:@"/spots" near:location parameters:[NSDictionary dictionaryWithObject:@"128" forKey:@"per_page"] block:^(NSArray *records) { [Post globalTimelinePostsWithBlock:^(NSArray *posts, NSError *error) {
self.nearbySpots = [records sortedArrayUsingComparator:^ NSComparisonResult(id obj1, id obj2) { if (error) {
CLLocationDistance d1 = [[(Spot *)obj1 location] distanceFromLocation:location]; [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error", nil) message:[error localizedDescription] delegate:nil cancelButtonTitle:nil otherButtonTitles:NSLocalizedString(@"OK", nil), nil] show];
CLLocationDistance d2 = [[(Spot *)obj2 location] distanceFromLocation:location]; } else {
_posts = posts;
if (d1 < d2) { [self.tableView reloadData];
return NSOrderedAscending; }
} else if (d1 > d2) {
return NSOrderedDescending;
} else {
return NSOrderedSame;
}
}];
[self.tableView reloadData];
[self.activityIndicatorView stopAnimating]; [_activityIndicatorView stopAnimating];
self.navigationItem.rightBarButtonItem.enabled = YES; self.navigationItem.rightBarButtonItem.enabled = YES;
}]; }];
} }
#pragma mark - UIViewController #pragma mark - UIViewController
- (void)loadView {
[super loadView];
_activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
_activityIndicatorView.hidesWhenStopped = YES;
}
- (void)viewDidLoad { - (void)viewDidLoad {
[super viewDidLoad]; [super viewDidLoad];
self.title = NSLocalizedString(@"AFNetworking", nil); self.title = NSLocalizedString(@"AFNetworking", nil);
self.activityIndicatorView = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite] autorelease]; self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:_activityIndicatorView];
self.activityIndicatorView.hidesWhenStopped = YES; self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(reload:)];
self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:self.activityIndicatorView] autorelease];
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refresh:)] autorelease];
self.navigationItem.rightBarButtonItem.enabled = NO;
[self.navigationController.navigationBar setTintColor:[UIColor darkGrayColor]];
self.tableView.rowHeight = 70.0f; self.tableView.rowHeight = 70.0f;
[self.locationManager startUpdatingLocation]; [self reload:nil];
} }
- (void)viewDidUnload { - (void)viewDidUnload {
[super viewDidUnload]; _activityIndicatorView = nil;
[self.locationManager stopUpdatingLocation];
}
#pragma mark - Actions
- (void)refresh:(id)sender {
self.nearbySpots = [NSArray array];
[self.tableView reloadData];
[[NSURLCache sharedURLCache] removeAllCachedResponses];
[[AFImageCache sharedImageCache] removeAllObjects];
if (self.locationManager.location) { [super viewDidUnload];
[self loadSpotsForLocation:self.locationManager.location];
}
}
#pragma mark - CLLocationManagerDelegate
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
[self loadSpotsForLocation:newLocation];
} }
#pragma mark - UITableViewDataSource #pragma mark - UITableViewDataSource
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.nearbySpots count]; return [_posts count];
} }
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell"; static NSString *CellIdentifier = @"Cell";
SpotTableViewCell *cell = (SpotTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; PostTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) { if (!cell) {
cell = [[[SpotTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; cell = [[PostTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
} }
Spot *spot = [self.nearbySpots objectAtIndex:indexPath.row]; cell.post = [_posts objectAtIndex:indexPath.row];
static TTTLocationFormatter *_locationFormatter = nil;
if (!_locationFormatter) {
_locationFormatter = [[TTTLocationFormatter alloc] init];
if (![[[NSLocale currentLocale] objectForKey:NSLocaleUsesMetricSystem] boolValue]) {
[_locationFormatter setUnitSystem:TTTImperialSystem];
}
}
if (self.locationManager.location) {
cell.detailTextLabel.text = [_locationFormatter stringFromDistanceAndBearingFromLocation:self.locationManager.location toLocation:spot.location];
}
cell.spot = spot;
return cell; return cell;
} }
#pragma mark - UITableViewDelegate #pragma mark - UITableViewDelegate
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if ([self tableView:tableView numberOfRowsInSection:section] > 0) { return [PostTableViewCell heightForCellWithPost:[_posts objectAtIndex:indexPath.row]];
return NSLocalizedString(@"Nearby Spots", nil);
}
return nil;
} }
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
......
// AFGowallaAPI.h // Post.h
// //
// Copyright (c) 2011 Gowalla (http://gowalla.com/) // Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
// //
// Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal // of this software and associated documentation files (the "Software"), to deal
...@@ -21,11 +21,18 @@ ...@@ -21,11 +21,18 @@
// THE SOFTWARE. // THE SOFTWARE.
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import "AFHTTPClient.h"
extern NSString * const kAFGowallaClientID; @class User;
extern NSString * const kAFGowallaBaseURLString;
@interface Post : NSObject
@property (readonly) NSUInteger postID;
@property (readonly) NSString *text;
@property (readonly) User *user;
- (id)initWithAttributes:(NSDictionary *)attributes;
+ (void)globalTimelinePostsWithBlock:(void (^)(NSArray *posts, NSError *error))block;
@interface AFGowallaAPIClient : AFHTTPClient
+ (AFGowallaAPIClient *)sharedClient;
@end @end
// AFGowallaAPI.m // Post.m
// //
// Copyright (c) 2011 Gowalla (http://gowalla.com/) // Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
// //
// Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal // of this software and associated documentation files (the "Software"), to deal
...@@ -20,48 +20,49 @@ ...@@ -20,48 +20,49 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE. // THE SOFTWARE.
#import "AFGowallaAPIClient.h" #import "Post.h"
#import "User.h"
#import "AFJSONRequestOperation.h" #import "AFAppDotNetAPIClient.h"
// Replace this with your own API Key, available at http://api.gowalla.com/api/keys/ @implementation Post
NSString * const kAFGowallaClientID = @"e7ccb7d3d2414eb2af4663fc91eb2793"; @synthesize postID = _postID;
@synthesize text = _text;
@synthesize user = _user;
NSString * const kAFGowallaBaseURLString = @"https://api.gowalla.com/"; - (id)initWithAttributes:(NSDictionary *)attributes {
self = [super init];
@implementation AFGowallaAPIClient
+ (AFGowallaAPIClient *)sharedClient {
static AFGowallaAPIClient *_sharedClient = nil;
static dispatch_once_t oncePredicate;
dispatch_once(&oncePredicate, ^{
_sharedClient = [[self alloc] initWithBaseURL:[NSURL URLWithString:kAFGowallaBaseURLString]];
});
return _sharedClient;
}
- (id)initWithBaseURL:(NSURL *)url {
self = [super initWithBaseURL:url];
if (!self) { if (!self) {
return nil; return nil;
} }
[self registerHTTPOperationClass:[AFJSONRequestOperation class]]; _postID = [[attributes valueForKeyPath:@"id"] integerValue];
_text = [attributes valueForKeyPath:@"text"];
// Accept HTTP Header; see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1 _user = [[User alloc] initWithAttributes:[attributes valueForKeyPath:@"user"]];
[self setDefaultHeader:@"Accept" value:@"application/json"];
// X-Gowalla-API-Key HTTP Header; see http://api.gowalla.com/api/docs
[self setDefaultHeader:@"X-Gowalla-API-Key" value:kAFGowallaClientID];
// X-Gowalla-API-Version HTTP Header; see http://api.gowalla.com/api/docs
[self setDefaultHeader:@"X-Gowalla-API-Version" value:@"1"];
// X-UDID HTTP Header
[self setDefaultHeader:@"X-UDID" value:[[UIDevice currentDevice] uniqueIdentifier]];
return self; return self;
} }
#pragma mark -
+ (void)globalTimelinePostsWithBlock:(void (^)(NSArray *posts, NSError *error))block {
[[AFAppDotNetAPIClient sharedClient] getPath:@"stream/0/posts/stream/global" parameters:nil success:^(AFHTTPRequestOperation *operation, id JSON) {
NSArray *postsFromResponse = [JSON valueForKeyPath:@"data"];
NSMutableArray *mutablePosts = [NSMutableArray arrayWithCapacity:[postsFromResponse count]];
for (NSDictionary *attributes in postsFromResponse) {
Post *post = [[Post alloc] initWithAttributes:attributes];
[mutablePosts addObject:post];
}
if (block) {
block([NSArray arrayWithArray:mutablePosts], nil);
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (block) {
block([NSArray array], error);
}
}];
}
@end @end
// AFGowallaAPI.h // User.h
// //
// Copyright (c) 2011 Gowalla (http://gowalla.com/) // Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
// //
// Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal // of this software and associated documentation files (the "Software"), to deal
...@@ -21,11 +21,19 @@ ...@@ -21,11 +21,19 @@
// THE SOFTWARE. // THE SOFTWARE.
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import "AFHTTPClient.h"
extern NSString * const kAFGowallaClientID; extern NSString * const kUserProfileImageDidLoadNotification;
extern NSString * const kAFGowallaBaseURLString;
@interface User : NSObject
@property (readonly, nonatomic) NSUInteger userID;
@property (readonly, nonatomic) NSString *username;
@property (readonly, nonatomic, unsafe_unretained) NSURL *avatarImageURL;
- (id)initWithAttributes:(NSDictionary *)attributes;
#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
@property (nonatomic, strong) NSImage *profileImage;
#endif
@interface AFGowallaAPIClient : AFHTTPClient
+ (AFGowallaAPIClient *)sharedClient;
@end @end
// Spot.m // User.m
// //
// Copyright (c) 2011 Gowalla (http://gowalla.com/) // Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
// //
// Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal // of this software and associated documentation files (the "Software"), to deal
...@@ -20,16 +20,25 @@ ...@@ -20,16 +20,25 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE. // THE SOFTWARE.
#import "Spot.h" #import "User.h"
#import "AFImageRequestOperation.h"
#import "AFGowallaAPIClient.h" NSString * const kUserProfileImageDidLoadNotification = @"com.alamofire.user.profile-image.loaded";
@implementation Spot #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
@synthesize name = _name; @interface User ()
@synthesize imageURLString = _imageURLString; + (NSOperationQueue *)sharedProfileImageRequestOperationQueue;
@synthesize latitude = _latitude; @end
@synthesize longitude = _longitude; #endif
@dynamic location;
@implementation User {
@private
NSString *_avatarImageURLString;
AFImageRequestOperation *_avatarImageRequestOperation;
}
@synthesize userID = _userID;
@synthesize username = _username;
- (id)initWithAttributes:(NSDictionary *)attributes { - (id)initWithAttributes:(NSDictionary *)attributes {
self = [super init]; self = [super init];
...@@ -37,48 +46,52 @@ ...@@ -37,48 +46,52 @@
return nil; return nil;
} }
self.name = [attributes valueForKeyPath:@"name"]; _userID = [[attributes valueForKeyPath:@"id"] integerValue];
self.imageURLString = [attributes valueForKeyPath:@"image_url"]; _username = [attributes valueForKeyPath:@"username"];
self.latitude = [attributes valueForKeyPath:@"lat"]; _avatarImageURLString = [attributes valueForKeyPath:@"avatar_image.url"];
self.longitude = [attributes valueForKeyPath:@"lng"];
return self; return self;
} }
- (void)dealloc { - (NSURL *)avatarImageURL {
[_name release]; return [NSURL URLWithString:_avatarImageURLString];
[_imageURLString release];
[_latitude release];
[_longitude release];
[super dealloc];
} }
- (CLLocation *)location { #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
return [[[CLLocation alloc] initWithLatitude:[self.latitude doubleValue] longitude:[self.longitude doubleValue]] autorelease];
}
+ (void)spotsWithURLString:(NSString *)urlString near:(CLLocation *)location parameters:(NSDictionary *)parameters block:(void (^)(NSArray *records))block { @synthesize profileImage = _profileImage;
NSDictionary *mutableParameters = [NSMutableDictionary dictionaryWithDictionary:parameters];
if (location) { + (NSOperationQueue *)sharedProfileImageRequestOperationQueue {
[mutableParameters setValue:[NSString stringWithFormat:@"%1.7f", location.coordinate.latitude] forKey:@"lat"]; static NSOperationQueue *_sharedProfileImageRequestOperationQueue = nil;
[mutableParameters setValue:[NSString stringWithFormat:@"%1.7f", location.coordinate.longitude] forKey:@"lng"]; static dispatch_once_t onceToken;
} dispatch_once(&onceToken, ^{
_sharedProfileImageRequestOperationQueue = [[NSOperationQueue alloc] init];
[_sharedProfileImageRequestOperationQueue setMaxConcurrentOperationCount:8];
});
[[AFGowallaAPIClient sharedClient] getPath:urlString parameters:mutableParameters success:^(id object) { return _sharedProfileImageRequestOperationQueue;
NSMutableArray *mutableRecords = [NSMutableArray array]; }
for (NSDictionary *attributes in [object valueForKeyPath:@"spots"]) {
Spot *spot = [[[Spot alloc] initWithAttributes:attributes] autorelease]; - (NSImage *)profileImage {
[mutableRecords addObject:spot]; if (!_profileImage && !_avatarImageRequestOperation) {
} _avatarImageRequestOperation = [AFImageRequestOperation imageRequestOperationWithRequest:[NSURLRequest requestWithURL:self.avatarImageURL] success:^(NSImage *image) {
self.profileImage = image;
_avatarImageRequestOperation = nil;
[[NSNotificationCenter defaultCenter] postNotificationName:kUserProfileImageDidLoadNotification object:self userInfo:nil];
}];
if (block) { [_avatarImageRequestOperation setCacheResponseBlock:^NSCachedURLResponse *(NSURLConnection *connection, NSCachedURLResponse *cachedResponse) {
block([NSArray arrayWithArray:mutableRecords]); return [[NSCachedURLResponse alloc] initWithResponse:cachedResponse.response data:cachedResponse.data userInfo:cachedResponse.userInfo storagePolicy:NSURLCacheStorageAllowed];
} }];
} failure:^(NSHTTPURLResponse *response, NSError *error) {
if (block) { [[[self class] sharedProfileImageRequestOperationQueue] addOperation:_avatarImageRequestOperation];
block([NSArray array]); }
}
}]; return _profileImage;
} }
#endif
@end @end
// AppDelegate.h // TweetTableViewCell.h
// //
// Copyright (c) 2011 Gowalla (http://gowalla.com/) // Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
// //
// Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal // of this software and associated documentation files (the "Software"), to deal
...@@ -20,13 +20,14 @@ ...@@ -20,13 +20,14 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE. // THE SOFTWARE.
#import <UIKit/UIKit.h>
#import <Cocoa/Cocoa.h> @class Post;
@interface AppDelegate : NSObject <NSApplicationDelegate> { @interface PostTableViewCell : UITableViewCell
NSWindow *_window;
}
@property (strong) IBOutlet NSWindow *window; @property (nonatomic, strong) Post *post;
+ (CGFloat)heightForCellWithPost:(Post *)post;
@end @end
// SpotTableViewCell.m // TweetTableViewCell.m
// //
// Copyright (c) 2011 Gowalla (http://gowalla.com/) // Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
// //
// Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal // of this software and associated documentation files (the "Software"), to deal
...@@ -20,78 +20,62 @@ ...@@ -20,78 +20,62 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE. // THE SOFTWARE.
#import "SpotTableViewCell.h" #import "PostTableViewCell.h"
#import "Spot.h" #import "Post.h"
#import "User.h"
#import "UIImageView+AFNetworking.h" #import "UIImageView+AFNetworking.h"
@implementation SpotTableViewCell @implementation PostTableViewCell {
@synthesize spot = _spot; @private
__strong Post *_post;
}
@synthesize post = _post;
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (!self) { if (!self) {
return nil; return nil;
} }
self.textLabel.adjustsFontSizeToFitWidth = YES;
self.textLabel.textColor = [UIColor darkGrayColor]; self.textLabel.textColor = [UIColor darkGrayColor];
self.textLabel.numberOfLines = 2; self.detailTextLabel.font = [UIFont systemFontOfSize:12.0f];
self.textLabel.backgroundColor = self.backgroundColor; self.detailTextLabel.numberOfLines = 0;
self.detailTextLabel.textColor = [UIColor grayColor];
self.detailTextLabel.backgroundColor = self.backgroundColor;
self.imageView.backgroundColor = self.backgroundColor;
self.imageView.contentMode = UIViewContentModeScaleAspectFit;
self.selectionStyle = UITableViewCellSelectionStyleGray; self.selectionStyle = UITableViewCellSelectionStyleGray;
return self; return self;
} }
- (void)dealloc { - (void)setPost:(Post *)post {
[_spot release]; _post = post;
[super dealloc];
}
- (void)setSpot:(Spot *)spot {
[self willChangeValueForKey:@"spot"];
[_spot autorelease];
_spot = [spot retain];
[self didChangeValueForKey:@"spot"];
[self.imageView setImageWithURL:[NSURL URLWithString:self.spot.imageURLString] placeholderImage:[UIImage imageNamed:@"placeholder-stamp.png"]]; self.textLabel.text = _post.user.username;
self.detailTextLabel.text = _post.text;
self.textLabel.text = spot.name; [self.imageView setImageWithURL:_post.user.avatarImageURL placeholderImage:[UIImage imageNamed:@"profile-image-placeholder"]];
[self setNeedsLayout];
} }
#pragma mark - UITableViewCell + (CGFloat)heightForCellWithPost:(Post *)post {
CGSize sizeToFit = [post.text sizeWithFont:[UIFont systemFontOfSize:12.0f] constrainedToSize:CGSizeMake(220.0f, CGFLOAT_MAX) lineBreakMode:UILineBreakModeWordWrap];
- (void)prepareForReuse {
[self.imageView cancelImageRequestOperation]; return fmaxf(70.0f, sizeToFit.height + 45.0f);
self.textLabel.text = nil;
self.detailTextLabel.text = nil;
} }
#pragma mark - UIView #pragma mark - UIView
- (void)layoutSubviews { - (void)layoutSubviews {
[super layoutSubviews]; [super layoutSubviews];
CGRect imageViewFrame = self.imageView.frame;
CGRect textLabelFrame = self.textLabel.frame;
CGRect detailTextLabelFrame = self.detailTextLabel.frame;
imageViewFrame.origin = CGPointMake(10.0f, 10.0f); self.imageView.frame = CGRectMake(10.0f, 10.0f, 50.0f, 50.0f);
imageViewFrame.size = CGSizeMake(50.0f, 50.0f); self.textLabel.frame = CGRectMake(70.0f, 10.0f, 240.0f, 20.0f);
textLabelFrame.origin.x = imageViewFrame.size.width + 25.0f;
detailTextLabelFrame.origin.x = textLabelFrame.origin.x;
textLabelFrame.size.width = 240.0f;
detailTextLabelFrame.size.width = textLabelFrame.size.width;
self.textLabel.frame = textLabelFrame; CGRect detailTextLabelFrame = CGRectOffset(self.textLabel.frame, 0.0f, 25.0f);
detailTextLabelFrame.size.height = [[self class] heightForCellWithPost:_post] - 45.0f;
self.detailTextLabel.frame = detailTextLabelFrame; self.detailTextLabel.frame = detailTextLabelFrame;
self.imageView.frame = imageViewFrame;
} }
@end @end
...@@ -22,12 +22,10 @@ ...@@ -22,12 +22,10 @@
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>1</string> <string>1</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string>
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>${MACOSX_DEPLOYMENT_TARGET}</string> <string>${MACOSX_DEPLOYMENT_TARGET}</string>
<key>NSHumanReadableCopyright</key> <key>NSHumanReadableCopyright</key>
<string>Copyright © 2011 Gowalla. All rights reserved.</string> <string>Copyright © 2012 Mattt Thompson. All rights reserved.</string>
<key>NSMainNibFile</key> <key>NSMainNibFile</key>
<string>MainMenu</string> <string>MainMenu</string>
<key>NSPrincipalClass</key> <key>NSPrincipalClass</key>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
<data> <data>
<int key="IBDocument.SystemTarget">0</int> <int key="IBDocument.SystemTarget">1080</int>
<string key="IBDocument.SystemVersion">11A511</string> <string key="IBDocument.SystemVersion">12B19</string>
<string key="IBDocument.InterfaceBuilderVersion">1900</string> <string key="IBDocument.InterfaceBuilderVersion">2840</string>
<string key="IBDocument.AppKitVersion">1138</string> <string key="IBDocument.AppKitVersion">1187</string>
<string key="IBDocument.HIToolboxVersion">566.00</string> <string key="IBDocument.HIToolboxVersion">624.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">1900</string> <string key="NS.object.0">2840</string>
</object> </object>
<object class="NSArray" key="IBDocument.IntegratedClassDependencies"> <object class="NSArray" key="IBDocument.IntegratedClassDependencies">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
<string>NSView</string> <string>IBNSLayoutConstraint</string>
<string>NSArrayController</string>
<string>NSCustomObject</string>
<string>NSImageCell</string>
<string>NSImageView</string>
<string>NSMenu</string> <string>NSMenu</string>
<string>NSScrollView</string>
<string>NSWindowTemplate</string>
<string>NSMenuItem</string> <string>NSMenuItem</string>
<string>NSScrollView</string>
<string>NSScroller</string>
<string>NSTableCellView</string>
<string>NSTableColumn</string>
<string>NSTableView</string> <string>NSTableView</string>
<string>NSTextField</string>
<string>NSTextFieldCell</string> <string>NSTextFieldCell</string>
<string>NSImageCell</string> <string>NSView</string>
<string>NSTableColumn</string> <string>NSWindowTemplate</string>
<string>NSScroller</string>
<string>NSCustomObject</string>
</object> </object>
<object class="NSArray" key="IBDocument.PluginDependencies"> <object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
...@@ -164,6 +169,137 @@ ...@@ -164,6 +169,137 @@
<string key="NSName">_NSAppleMenu</string> <string key="NSName">_NSAppleMenu</string>
</object> </object>
</object> </object>
<object class="NSMenuItem" id="141598972">
<reference key="NSMenu" ref="649796088"/>
<string key="NSTitle">File</string>
<string key="NSKeyEquiv"/>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="35465992"/>
<reference key="NSMixedImage" ref="502551668"/>
<string key="NSAction">submenuAction:</string>
<object class="NSMenu" key="NSSubmenu" id="702625398">
<string key="NSTitle">File</string>
<object class="NSMutableArray" key="NSMenuItems">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMenuItem" id="943041763">
<reference key="NSMenu" ref="702625398"/>
<string key="NSTitle">New</string>
<string key="NSKeyEquiv">n</string>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="35465992"/>
<reference key="NSMixedImage" ref="502551668"/>
</object>
<object class="NSMenuItem" id="883464109">
<reference key="NSMenu" ref="702625398"/>
<string key="NSTitle">Open…</string>
<string key="NSKeyEquiv">o</string>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="35465992"/>
<reference key="NSMixedImage" ref="502551668"/>
</object>
<object class="NSMenuItem" id="858489037">
<reference key="NSMenu" ref="702625398"/>
<string key="NSTitle">Open Recent</string>
<string key="NSKeyEquiv"/>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="35465992"/>
<reference key="NSMixedImage" ref="502551668"/>
<string key="NSAction">submenuAction:</string>
<object class="NSMenu" key="NSSubmenu" id="878241342">
<string key="NSTitle">Open Recent</string>
<object class="NSMutableArray" key="NSMenuItems">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMenuItem" id="56667518">
<reference key="NSMenu" ref="878241342"/>
<string key="NSTitle">Clear Menu</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="35465992"/>
<reference key="NSMixedImage" ref="502551668"/>
</object>
</object>
<string key="NSName">_NSRecentDocumentsMenu</string>
</object>
</object>
<object class="NSMenuItem" id="13890772">
<reference key="NSMenu" ref="702625398"/>
<bool key="NSIsDisabled">YES</bool>
<bool key="NSIsSeparator">YES</bool>
<string key="NSTitle"/>
<string key="NSKeyEquiv"/>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="35465992"/>
<reference key="NSMixedImage" ref="502551668"/>
</object>
<object class="NSMenuItem" id="713570148">
<reference key="NSMenu" ref="702625398"/>
<string key="NSTitle">Close</string>
<string key="NSKeyEquiv">w</string>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="35465992"/>
<reference key="NSMixedImage" ref="502551668"/>
</object>
<object class="NSMenuItem" id="847949808">
<reference key="NSMenu" ref="702625398"/>
<string key="NSTitle">Save</string>
<string key="NSKeyEquiv">s</string>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="35465992"/>
<reference key="NSMixedImage" ref="502551668"/>
</object>
<object class="NSMenuItem" id="787531788">
<reference key="NSMenu" ref="702625398"/>
<string key="NSTitle">Save As…</string>
<string key="NSKeyEquiv">S</string>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="35465992"/>
<reference key="NSMixedImage" ref="502551668"/>
</object>
<object class="NSMenuItem" id="269865460">
<reference key="NSMenu" ref="702625398"/>
<string key="NSTitle">Revert to Saved</string>
<string key="NSKeyEquiv"/>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="35465992"/>
<reference key="NSMixedImage" ref="502551668"/>
</object>
<object class="NSMenuItem" id="157520762">
<reference key="NSMenu" ref="702625398"/>
<bool key="NSIsDisabled">YES</bool>
<bool key="NSIsSeparator">YES</bool>
<string key="NSTitle"/>
<string key="NSKeyEquiv"/>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="35465992"/>
<reference key="NSMixedImage" ref="502551668"/>
</object>
<object class="NSMenuItem" id="245280452">
<reference key="NSMenu" ref="702625398"/>
<string key="NSTitle">Page Setup…</string>
<string key="NSKeyEquiv">P</string>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="35465992"/>
<reference key="NSMixedImage" ref="502551668"/>
</object>
<object class="NSMenuItem" id="1012221138">
<reference key="NSMenu" ref="702625398"/>
<string key="NSTitle">Print…</string>
<string key="NSKeyEquiv">p</string>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="35465992"/>
<reference key="NSMixedImage" ref="502551668"/>
</object>
</object>
</object>
</object>
<object class="NSMenuItem" id="713487014"> <object class="NSMenuItem" id="713487014">
<reference key="NSMenu" ref="649796088"/> <reference key="NSMenu" ref="649796088"/>
<string key="NSTitle">Window</string> <string key="NSTitle">Window</string>
...@@ -248,10 +384,10 @@ ...@@ -248,10 +384,10 @@
<string key="NSName">_NSMainMenu</string> <string key="NSName">_NSMainMenu</string>
</object> </object>
<object class="NSWindowTemplate" id="972006081"> <object class="NSWindowTemplate" id="972006081">
<int key="NSWindowStyleMask">15</int> <int key="NSWindowStyleMask">4111</int>
<int key="NSWindowBacking">2</int> <int key="NSWindowBacking">2</int>
<string key="NSWindowRect">{{50, 538}, {375, 500}}</string> <string key="NSWindowRect">{{60, 295}, {331, 500}}</string>
<int key="NSWTFlags">1954021376</int> <int key="NSWTFlags">1954022400</int>
<string key="NSWindowTitle">AFNetworking Mac Example</string> <string key="NSWindowTitle">AFNetworking Mac Example</string>
<string key="NSWindowClass">NSWindow</string> <string key="NSWindowClass">NSWindow</string>
<nil key="NSViewClass"/> <nil key="NSViewClass"/>
...@@ -259,7 +395,7 @@ ...@@ -259,7 +395,7 @@
<string key="NSWindowContentMaxSize">{375, 1280}</string> <string key="NSWindowContentMaxSize">{375, 1280}</string>
<string key="NSWindowContentMinSize">{375, 200}</string> <string key="NSWindowContentMinSize">{375, 200}</string>
<object class="NSView" key="NSWindowView" id="439893737"> <object class="NSView" key="NSWindowView" id="439893737">
<reference key="NSNextResponder"/> <nil key="NSNextResponder"/>
<int key="NSvFlags">256</int> <int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews"> <object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
...@@ -276,11 +412,16 @@ ...@@ -276,11 +412,16 @@
<object class="NSTableView" id="256434433"> <object class="NSTableView" id="256434433">
<reference key="NSNextResponder" ref="411548182"/> <reference key="NSNextResponder" ref="411548182"/>
<int key="NSvFlags">256</int> <int key="NSvFlags">256</int>
<string key="NSFrameSize">{373, 498}</string> <object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<string key="NSFrameSize">{331, 498}</string>
<reference key="NSSuperview" ref="411548182"/> <reference key="NSSuperview" ref="411548182"/>
<reference key="NSNextKeyView" ref="830874312"/> <reference key="NSNextKeyView" ref="505772708"/>
<string key="NSReuseIdentifierKey">_NS:1197</string> <string key="NSReuseIdentifierKey">_NS:1197</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<bool key="NSControlAllowsExpansionToolTips">YES</bool>
<object class="_NSCornerView" key="NSCornerView"> <object class="_NSCornerView" key="NSCornerView">
<nil key="NSNextResponder"/> <nil key="NSNextResponder"/>
<int key="NSvFlags">-2147483392</int> <int key="NSvFlags">-2147483392</int>
...@@ -290,23 +431,23 @@ ...@@ -290,23 +431,23 @@
<object class="NSMutableArray" key="NSTableColumns"> <object class="NSMutableArray" key="NSTableColumns">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSTableColumn" id="553559566"> <object class="NSTableColumn" id="553559566">
<double key="NSWidth">70</double> <double key="NSWidth">321</double>
<double key="NSMinWidth">70</double> <double key="NSMinWidth">70</double>
<double key="NSMaxWidth">70</double> <double key="NSMaxWidth">10000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell"> <object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int> <int key="NSCellFlags">75497536</int>
<int key="NSCellFlags2">2048</int> <int key="NSCellFlags2">2048</int>
<string key="NSContents"/> <string key="NSContents"/>
<object class="NSFont" key="NSSupport" id="26"> <object class="NSFont" key="NSSupport">
<string key="NSName">LucidaGrande</string> <string key="NSName">LucidaGrande</string>
<double key="NSSize">11</double> <double key="NSSize">11</double>
<int key="NSfFlags">3100</int> <int key="NSfFlags">3100</int>
</object> </object>
<object class="NSColor" key="NSBackgroundColor" id="852838638"> <object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">3</int> <int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC4zMzMzMzI5ODU2AA</bytes> <bytes key="NSWhite">MC4zMzMzMzI5ODU2AA</bytes>
</object> </object>
<object class="NSColor" key="NSTextColor" id="705481664"> <object class="NSColor" key="NSTextColor">
<int key="NSColorSpace">6</int> <int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string> <string key="NSCatalogName">System</string>
<string key="NSColorName">headerTextColor</string> <string key="NSColorName">headerTextColor</string>
...@@ -317,17 +458,8 @@ ...@@ -317,17 +458,8 @@
</object> </object>
</object> </object>
<object class="NSImageCell" key="NSDataCell" id="717955434"> <object class="NSImageCell" key="NSDataCell" id="717955434">
<int key="NSCellFlags">67239424</int> <int key="NSCellFlags">134217728</int>
<int key="NSCellFlags2">33554432</int> <int key="NSCellFlags2">33554432</int>
<object class="NSCustomResource" key="NSContents">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">placeholder-stamp</string>
</object>
<object class="NSFont" key="NSSupport">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">13</double>
<int key="NSfFlags">1044</int>
</object>
<string key="NSCellIdentifier">_NS:4045</string> <string key="NSCellIdentifier">_NS:4045</string>
<int key="NSAlign">1</int> <int key="NSAlign">1</int>
<int key="NSScale">0</int> <int key="NSScale">0</int>
...@@ -339,49 +471,6 @@ ...@@ -339,49 +471,6 @@
<bool key="NSIsEditable">YES</bool> <bool key="NSIsEditable">YES</bool>
<reference key="NSTableView" ref="256434433"/> <reference key="NSTableView" ref="256434433"/>
</object> </object>
<object class="NSTableColumn" id="879600957">
<double key="NSWidth">223</double>
<double key="NSMinWidth">40</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents"/>
<reference key="NSSupport" ref="26"/>
<reference key="NSBackgroundColor" ref="852838638"/>
<reference key="NSTextColor" ref="705481664"/>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="722199198">
<int key="NSCellFlags">337772032</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents">Text Cell</string>
<object class="NSFont" key="NSSupport">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">16</double>
<int key="NSfFlags">16</int>
</object>
<reference key="NSControlView" ref="256434433"/>
<object class="NSColor" key="NSBackgroundColor" id="100074496">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlBackgroundColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlTextColor</string>
<reference key="NSColor" ref="840334811"/>
</object>
</object>
<int key="NSResizingMask">3</int>
<bool key="NSIsResizeable">YES</bool>
<bool key="NSIsEditable">YES</bool>
<reference key="NSTableView" ref="256434433"/>
</object>
</object> </object>
<double key="NSIntercellSpacingWidth">10</double> <double key="NSIntercellSpacingWidth">10</double>
<double key="NSIntercellSpacingHeight">10</double> <double key="NSIntercellSpacingHeight">10</double>
...@@ -398,11 +487,11 @@ ...@@ -398,11 +487,11 @@
<bytes key="NSWhite">MC41AA</bytes> <bytes key="NSWhite">MC41AA</bytes>
</object> </object>
</object> </object>
<double key="NSRowHeight">60</double> <double key="NSRowHeight">85</double>
<int key="NSTvFlags">373293056</int> <int key="NSTvFlags">381714432</int>
<reference key="NSDelegate"/> <reference key="NSDelegate"/>
<reference key="NSDataSource"/> <reference key="NSDataSource"/>
<int key="NSColumnAutoresizingStyle">4</int> <int key="NSColumnAutoresizingStyle">1</int>
<int key="NSDraggingSourceMaskForLocal">15</int> <int key="NSDraggingSourceMaskForLocal">15</int>
<int key="NSDraggingSourceMaskForNonLocal">0</int> <int key="NSDraggingSourceMaskForNonLocal">0</int>
<bool key="NSAllowsTypeSelect">YES</bool> <bool key="NSAllowsTypeSelect">YES</bool>
...@@ -410,12 +499,20 @@ ...@@ -410,12 +499,20 @@
<int key="NSTableViewGroupRowStyle">1</int> <int key="NSTableViewGroupRowStyle">1</int>
</object> </object>
</object> </object>
<string key="NSFrame">{{1, 1}, {373, 498}}</string> <string key="NSFrame">{{1, 1}, {331, 498}}</string>
<reference key="NSSuperview" ref="905625827"/> <reference key="NSSuperview" ref="905625827"/>
<reference key="NSNextKeyView" ref="256434433"/> <reference key="NSNextKeyView" ref="256434433"/>
<string key="NSReuseIdentifierKey">_NS:1195</string> <string key="NSReuseIdentifierKey">_NS:1195</string>
<reference key="NSDocView" ref="256434433"/> <reference key="NSDocView" ref="256434433"/>
<reference key="NSBGColor" ref="100074496"/> <object class="NSColor" key="NSBGColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlBackgroundColor</string>
<object class="NSColor" key="NSColor" id="77157331">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<int key="NScvFlags">4</int> <int key="NScvFlags">4</int>
</object> </object>
<object class="NSScroller" id="830874312"> <object class="NSScroller" id="830874312">
...@@ -425,6 +522,7 @@ ...@@ -425,6 +522,7 @@
<reference key="NSSuperview" ref="905625827"/> <reference key="NSSuperview" ref="905625827"/>
<reference key="NSNextKeyView" ref="870849666"/> <reference key="NSNextKeyView" ref="870849666"/>
<string key="NSReuseIdentifierKey">_NS:1214</string> <string key="NSReuseIdentifierKey">_NS:1214</string>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<reference key="NSTarget" ref="905625827"/> <reference key="NSTarget" ref="905625827"/>
<string key="NSAction">_doScroller:</string> <string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.99815157116451014</double> <double key="NSPercent">0.99815157116451014</double>
...@@ -432,16 +530,17 @@ ...@@ -432,16 +530,17 @@
<object class="NSScroller" id="870849666"> <object class="NSScroller" id="870849666">
<reference key="NSNextResponder" ref="905625827"/> <reference key="NSNextResponder" ref="905625827"/>
<int key="NSvFlags">-2147483392</int> <int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{1, 526}, {374, 15}}</string> <string key="NSFrame">{{1, 484}, {373, 15}}</string>
<reference key="NSSuperview" ref="905625827"/> <reference key="NSSuperview" ref="905625827"/>
<string key="NSReuseIdentifierKey">_NS:1216</string> <string key="NSReuseIdentifierKey">_NS:1216</string>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<int key="NSsFlags">1</int> <int key="NSsFlags">1</int>
<reference key="NSTarget" ref="905625827"/> <reference key="NSTarget" ref="905625827"/>
<string key="NSAction">_doScroller:</string> <string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.99733333333333329</double> <double key="NSPercent">0.99732620320855614</double>
</object> </object>
</object> </object>
<string key="NSFrameSize">{375, 500}</string> <string key="NSFrame">{{-1, 0}, {333, 500}}</string>
<reference key="NSSuperview" ref="439893737"/> <reference key="NSSuperview" ref="439893737"/>
<reference key="NSNextKeyView" ref="411548182"/> <reference key="NSNextKeyView" ref="411548182"/>
<string key="NSReuseIdentifierKey">_NS:1193</string> <string key="NSReuseIdentifierKey">_NS:1193</string>
...@@ -449,14 +548,16 @@ ...@@ -449,14 +548,16 @@
<reference key="NSVScroller" ref="830874312"/> <reference key="NSVScroller" ref="830874312"/>
<reference key="NSHScroller" ref="870849666"/> <reference key="NSHScroller" ref="870849666"/>
<reference key="NSContentView" ref="411548182"/> <reference key="NSContentView" ref="411548182"/>
<bytes key="NSScrollAmts">QSAAAEEgAABCjAAAQowAAA</bytes> <bytes key="NSScrollAmts">QSAAAEEgAABCvgAAQr4AAA</bytes>
<double key="NSMinMagnification">0.25</double>
<double key="NSMaxMagnification">4</double>
<double key="NSMagnification">1</double>
</object> </object>
</object> </object>
<string key="NSFrameSize">{375, 500}</string> <string key="NSFrameSize">{331, 500}</string>
<reference key="NSSuperview"/>
<reference key="NSNextKeyView" ref="905625827"/> <reference key="NSNextKeyView" ref="905625827"/>
</object> </object>
<string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string> <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string>
<string key="NSMinSize">{375, 222}</string> <string key="NSMinSize">{375, 222}</string>
<string key="NSMaxSize">{375, 1302}</string> <string key="NSMaxSize">{375, 1302}</string>
<bool key="NSWindowIsRestorable">YES</bool> <bool key="NSWindowIsRestorable">YES</bool>
...@@ -467,13 +568,43 @@ ...@@ -467,13 +568,43 @@
<object class="NSCustomObject" id="755631768"> <object class="NSCustomObject" id="755631768">
<string key="NSClassName">NSFontManager</string> <string key="NSClassName">NSFontManager</string>
</object> </object>
<object class="NSCustomObject" id="91820041"> <object class="NSArrayController" id="680254480">
<string key="NSClassName">NearbySpotsController</string> <string key="NSObjectClassName">Spot</string>
<object class="_NSManagedProxy" key="_NSManagedProxy"/>
<bool key="NSAvoidsEmptySelection">YES</bool>
<bool key="NSPreservesSelection">YES</bool>
<bool key="NSSelectsInsertedObjects">YES</bool>
<bool key="NSFilterRestrictsInsertion">YES</bool>
<bool key="NSClearsFilterPredicateOnInsertion">YES</bool>
</object> </object>
</object> </object>
<object class="IBObjectContainer" key="IBDocument.Objects"> <object class="IBObjectContainer" key="IBDocument.Objects">
<object class="NSMutableArray" key="connectionRecords"> <object class="NSMutableArray" key="connectionRecords">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">terminate:</string>
<reference key="source" ref="1050"/>
<reference key="destination" ref="632727374"/>
</object>
<int key="connectionID">449</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">orderFrontStandardAboutPanel:</string>
<reference key="source" ref="1021"/>
<reference key="destination" ref="238522557"/>
</object>
<int key="connectionID">142</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="1021"/>
<reference key="destination" ref="976324537"/>
</object>
<int key="connectionID">615</int>
</object>
<object class="IBConnectionRecord"> <object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection"> <object class="IBActionConnection" key="connection">
<string key="label">performMiniaturize:</string> <string key="label">performMiniaturize:</string>
...@@ -490,14 +621,6 @@ ...@@ -490,14 +621,6 @@
</object> </object>
<int key="connectionID">39</int> <int key="connectionID">39</int>
</object> </object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">orderFrontStandardAboutPanel:</string>
<reference key="source" ref="1021"/>
<reference key="destination" ref="238522557"/>
</object>
<int key="connectionID">142</int>
</object>
<object class="IBConnectionRecord"> <object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection"> <object class="IBActionConnection" key="connection">
<string key="label">performZoom:</string> <string key="label">performZoom:</string>
...@@ -532,27 +655,83 @@ ...@@ -532,27 +655,83 @@
</object> </object>
<object class="IBConnectionRecord"> <object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection"> <object class="IBActionConnection" key="connection">
<string key="label">terminate:</string> <string key="label">showHelp:</string>
<reference key="source" ref="1050"/> <reference key="source" ref="1014"/>
<reference key="destination" ref="632727374"/> <reference key="destination" ref="105068016"/>
</object> </object>
<int key="connectionID">449</int> <int key="connectionID">493</int>
</object> </object>
<object class="IBConnectionRecord"> <object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection"> <object class="IBActionConnection" key="connection">
<string key="label">showHelp:</string> <string key="label">print:</string>
<reference key="source" ref="1014"/> <reference key="source" ref="1014"/>
<reference key="destination" ref="105068016"/> <reference key="destination" ref="1012221138"/>
</object> </object>
<int key="connectionID">493</int> <int key="connectionID">632</int>
</object> </object>
<object class="IBConnectionRecord"> <object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection"> <object class="IBActionConnection" key="connection">
<string key="label">delegate</string> <string key="label">performClose:</string>
<reference key="source" ref="1021"/> <reference key="source" ref="1014"/>
<reference key="destination" ref="976324537"/> <reference key="destination" ref="713570148"/>
</object> </object>
<int key="connectionID">495</int> <int key="connectionID">634</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">saveDocumentAs:</string>
<reference key="source" ref="1014"/>
<reference key="destination" ref="787531788"/>
</object>
<int key="connectionID">637</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">runPageLayout:</string>
<reference key="source" ref="1014"/>
<reference key="destination" ref="245280452"/>
</object>
<int key="connectionID">638</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">saveDocument:</string>
<reference key="source" ref="1014"/>
<reference key="destination" ref="847949808"/>
</object>
<int key="connectionID">639</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">revertDocumentToSaved:</string>
<reference key="source" ref="1014"/>
<reference key="destination" ref="269865460"/>
</object>
<int key="connectionID">640</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">newDocument:</string>
<reference key="source" ref="1014"/>
<reference key="destination" ref="943041763"/>
</object>
<int key="connectionID">635</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">clearRecentDocuments:</string>
<reference key="source" ref="1014"/>
<reference key="destination" ref="56667518"/>
</object>
<int key="connectionID">636</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">openDocument:</string>
<reference key="source" ref="1014"/>
<reference key="destination" ref="883464109"/>
</object>
<int key="connectionID">633</int>
</object> </object>
<object class="IBConnectionRecord"> <object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection"> <object class="IBOutletConnection" key="connection">
...@@ -565,26 +744,188 @@ ...@@ -565,26 +744,188 @@
<object class="IBConnectionRecord"> <object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection"> <object class="IBOutletConnection" key="connection">
<string key="label">tableView</string> <string key="label">tableView</string>
<reference key="source" ref="91820041"/> <reference key="source" ref="976324537"/>
<reference key="destination" ref="256434433"/> <reference key="destination" ref="256434433"/>
</object> </object>
<int key="connectionID">550</int> <int key="connectionID">848</int>
</object> </object>
<object class="IBConnectionRecord"> <object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection"> <object class="IBOutletConnection" key="connection">
<string key="label">dataSource</string> <string key="label">postsArrayController</string>
<reference key="source" ref="256434433"/> <reference key="source" ref="976324537"/>
<reference key="destination" ref="91820041"/> <reference key="destination" ref="680254480"/>
</object>
<int key="connectionID">849</int>
</object>
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">value: arrangedObjects</string>
<reference key="source" ref="553559566"/>
<reference key="destination" ref="680254480"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="553559566"/>
<reference key="NSDestination" ref="680254480"/>
<string key="NSLabel">value: arrangedObjects</string>
<string key="NSBinding">value</string>
<string key="NSKeyPath">arrangedObjects</string>
<int key="NSNibBindingConnectorVersion">2</int>
</object>
</object> </object>
<int key="connectionID">551</int> <int key="connectionID">598</int>
</object> </object>
<object class="IBConnectionRecord"> <object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection"> <object class="IBOutletConnection" key="connection">
<string key="label">delegate</string> <string key="label">textField</string>
<reference key="source" ref="256434433"/> <object class="NSTableCellView" key="source" id="505772708">
<reference key="destination" ref="91820041"/> <nil key="NSNextResponder"/>
<int key="NSvFlags">274</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSTextField" id="373530427">
<reference key="NSNextResponder" ref="505772708"/>
<int key="NSvFlags">266</int>
<string key="NSFrame">{{84, 65}, {237, 17}}</string>
<reference key="NSSuperview" ref="505772708"/>
<reference key="NSNextKeyView" ref="472484220"/>
<string key="NSAntiCompressionPriority">{250, 750}</string>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="602054441">
<int key="NSCellFlags">67108928</int>
<int key="NSCellFlags2">272631808</int>
<string key="NSContents">Username</string>
<object class="NSFont" key="NSSupport">
<string key="NSName">LucidaGrande-Bold</string>
<double key="NSSize">14</double>
<int key="NSfFlags">16</int>
</object>
<reference key="NSControlView" ref="373530427"/>
<object class="NSColor" key="NSBackgroundColor" id="790157350">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlColor</string>
<reference key="NSColor" ref="77157331"/>
</object>
<object class="NSColor" key="NSTextColor" id="475189419">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlTextColor</string>
<reference key="NSColor" ref="840334811"/>
</object>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSImageView" id="615770799">
<reference key="NSNextResponder" ref="505772708"/>
<int key="NSvFlags">268</int>
<object class="NSMutableSet" key="NSDragTypes">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="set.sortedObjects">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>Apple PDF pasteboard type</string>
<string>Apple PICT pasteboard type</string>
<string>Apple PNG pasteboard type</string>
<string>NSFilenamesPboardType</string>
<string>NeXT Encapsulated PostScript v1.2 pasteboard type</string>
<string>NeXT TIFF v4.0 pasteboard type</string>
</object>
</object>
<string key="NSFrame">{{14, 21}, {56, 56}}</string>
<reference key="NSSuperview" ref="505772708"/>
<reference key="NSNextKeyView" ref="373530427"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSImageCell" key="NSCell" id="1006424888">
<int key="NSCellFlags">134217728</int>
<int key="NSCellFlags2">33554432</int>
<string key="NSCellIdentifier">_NS:9</string>
<int key="NSAlign">0</int>
<int key="NSScale">0</int>
<int key="NSStyle">1</int>
<bool key="NSAnimates">NO</bool>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<bool key="NSEditable">YES</bool>
</object>
<object class="NSTextField" id="472484220">
<reference key="NSNextResponder" ref="505772708"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{84, 3}, {236, 56}}</string>
<reference key="NSSuperview" ref="505772708"/>
<reference key="NSNextKeyView" ref="830874312"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<string key="NSAntiCompressionPriority">{250, 750}</string>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="429971541">
<int key="NSCellFlags">67108864</int>
<int key="NSCellFlags2">272629760</int>
<string key="NSContents">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad mi.</string>
<object class="NSFont" key="NSSupport">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">11</double>
<int key="NSfFlags">16</int>
</object>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="472484220"/>
<reference key="NSBackgroundColor" ref="790157350"/>
<reference key="NSTextColor" ref="475189419"/>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
</object>
<string key="NSFrame">{{5, 5}, {321, 85}}</string>
<reference key="NSNextKeyView" ref="615770799"/>
</object>
<reference key="destination" ref="373530427"/>
</object>
<int key="connectionID">580</int>
</object>
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">value: objectValue.user.username</string>
<reference key="source" ref="373530427"/>
<reference key="destination" ref="505772708"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="373530427"/>
<reference key="NSDestination" ref="505772708"/>
<string key="NSLabel">value: objectValue.user.username</string>
<string key="NSBinding">value</string>
<string key="NSKeyPath">objectValue.user.username</string>
<int key="NSNibBindingConnectorVersion">2</int>
</object>
</object>
<int key="connectionID">604</int>
</object>
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">value: objectValue.user.profileImage</string>
<reference key="source" ref="615770799"/>
<reference key="destination" ref="505772708"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="615770799"/>
<reference key="NSDestination" ref="505772708"/>
<string key="NSLabel">value: objectValue.user.profileImage</string>
<string key="NSBinding">value</string>
<string key="NSKeyPath">objectValue.user.profileImage</string>
<int key="NSNibBindingConnectorVersion">2</int>
</object>
</object>
<int key="connectionID">829</int>
</object>
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">value: objectValue.text</string>
<reference key="source" ref="472484220"/>
<reference key="destination" ref="505772708"/>
<object class="NSNibBindingConnector" key="connector">
<reference key="NSSource" ref="472484220"/>
<reference key="NSDestination" ref="505772708"/>
<string key="NSLabel">value: objectValue.text</string>
<string key="NSBinding">value</string>
<string key="NSKeyPath">objectValue.text</string>
<int key="NSNibBindingConnectorVersion">2</int>
</object>
</object> </object>
<int key="connectionID">552</int> <int key="connectionID">605</int>
</object> </object>
</object> </object>
<object class="IBMutableOrderedSet" key="objectRecords"> <object class="IBMutableOrderedSet" key="objectRecords">
...@@ -624,6 +965,7 @@ ...@@ -624,6 +965,7 @@
<reference ref="713487014"/> <reference ref="713487014"/>
<reference ref="694149608"/> <reference ref="694149608"/>
<reference ref="448692316"/> <reference ref="448692316"/>
<reference ref="141598972"/>
</object> </object>
<reference key="parent" ref="0"/> <reference key="parent" ref="0"/>
</object> </object>
...@@ -763,6 +1105,70 @@ ...@@ -763,6 +1105,70 @@
<object class="NSMutableArray" key="children"> <object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="905625827"/> <reference ref="905625827"/>
<object class="IBNSLayoutConstraint" id="467789989">
<reference key="firstItem" ref="905625827"/>
<int key="firstAttribute">10</int>
<int key="relation">0</int>
<reference key="secondItem" ref="439893737"/>
<int key="secondAttribute">10</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">0.0</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="439893737"/>
<int key="scoringType">5</int>
<float key="scoringTypeFloat">22</float>
<int key="contentType">2</int>
</object>
<object class="IBNSLayoutConstraint" id="792626335">
<reference key="firstItem" ref="439893737"/>
<int key="firstAttribute">6</int>
<int key="relation">0</int>
<reference key="secondItem" ref="905625827"/>
<int key="secondAttribute">6</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">-1</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="439893737"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="865651107">
<reference key="firstItem" ref="905625827"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="439893737"/>
<int key="secondAttribute">5</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">-1</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="439893737"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="590922666">
<reference key="firstItem" ref="905625827"/>
<int key="firstAttribute">3</int>
<int key="relation">0</int>
<reference key="secondItem" ref="439893737"/>
<int key="secondAttribute">3</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">0.0</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="439893737"/>
<int key="scoringType">3</int>
<float key="scoringTypeFloat">9</float>
<int key="contentType">3</int>
</object>
</object> </object>
<reference key="parent" ref="972006081"/> <reference key="parent" ref="972006081"/>
</object> </object>
...@@ -799,6 +1205,12 @@ ...@@ -799,6 +1205,12 @@
<reference key="object" ref="976324537"/> <reference key="object" ref="976324537"/>
<reference key="parent" ref="0"/> <reference key="parent" ref="0"/>
</object> </object>
<object class="IBObjectRecord">
<int key="objectID">555</int>
<reference key="object" ref="680254480"/>
<reference key="parent" ref="0"/>
<string key="objectName">Tweets Array Controller</string>
</object>
<object class="IBObjectRecord"> <object class="IBObjectRecord">
<int key="objectID">537</int> <int key="objectID">537</int>
<reference key="object" ref="905625827"/> <reference key="object" ref="905625827"/>
...@@ -810,23 +1222,12 @@ ...@@ -810,23 +1222,12 @@
</object> </object>
<reference key="parent" ref="439893737"/> <reference key="parent" ref="439893737"/>
</object> </object>
<object class="IBObjectRecord">
<int key="objectID">538</int>
<reference key="object" ref="830874312"/>
<reference key="parent" ref="905625827"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">540</int>
<reference key="object" ref="870849666"/>
<reference key="parent" ref="905625827"/>
</object>
<object class="IBObjectRecord"> <object class="IBObjectRecord">
<int key="objectID">541</int> <int key="objectID">541</int>
<reference key="object" ref="256434433"/> <reference key="object" ref="256434433"/>
<object class="NSMutableArray" key="children"> <object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="553559566"/> <reference ref="553559566"/>
<reference ref="879600957"/>
</object> </object>
<reference key="parent" ref="905625827"/> <reference key="parent" ref="905625827"/>
</object> </object>
...@@ -836,32 +1237,513 @@ ...@@ -836,32 +1237,513 @@
<object class="NSMutableArray" key="children"> <object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="717955434"/> <reference ref="717955434"/>
<reference ref="505772708"/>
</object> </object>
<reference key="parent" ref="256434433"/> <reference key="parent" ref="256434433"/>
</object> </object>
<object class="IBObjectRecord"> <object class="IBObjectRecord">
<int key="objectID">543</int> <int key="objectID">546</int>
<reference key="object" ref="879600957"/> <reference key="object" ref="717955434"/>
<reference key="parent" ref="553559566"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">540</int>
<reference key="object" ref="870849666"/>
<reference key="parent" ref="905625827"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">538</int>
<reference key="object" ref="830874312"/>
<reference key="parent" ref="905625827"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">577</int>
<reference key="object" ref="505772708"/>
<object class="NSMutableArray" key="children"> <object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="722199198"/> <reference ref="373530427"/>
<reference ref="472484220"/>
<object class="IBNSLayoutConstraint" id="376417113">
<reference key="firstItem" ref="472484220"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="505772708"/>
<int key="secondAttribute">5</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">87</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="505772708"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="716515170">
<reference key="firstItem" ref="472484220"/>
<int key="firstAttribute">3</int>
<int key="relation">0</int>
<reference key="secondItem" ref="505772708"/>
<int key="secondAttribute">3</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">26</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="505772708"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="958031551">
<reference key="firstItem" ref="373530427"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="505772708"/>
<int key="secondAttribute">5</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">87</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="505772708"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="226440407">
<reference key="firstItem" ref="373530427"/>
<int key="firstAttribute">9</int>
<int key="relation">0</int>
<reference key="secondItem" ref="472484220"/>
<int key="secondAttribute">9</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">0.0</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="505772708"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">2</int>
</object>
<object class="IBNSLayoutConstraint" id="1049409873">
<reference key="firstItem" ref="373530427"/>
<int key="firstAttribute">3</int>
<int key="relation">0</int>
<reference key="secondItem" ref="505772708"/>
<int key="secondAttribute">3</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">3</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="505772708"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="14444973">
<reference key="firstItem" ref="373530427"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="472484220"/>
<int key="secondAttribute">5</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">0.0</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="505772708"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">2</int>
</object>
<object class="IBNSLayoutConstraint" id="971396673">
<reference key="firstItem" ref="505772708"/>
<int key="firstAttribute">6</int>
<int key="relation">0</int>
<reference key="secondItem" ref="373530427"/>
<int key="secondAttribute">6</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">3</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="505772708"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="210332473">
<reference key="firstItem" ref="615770799"/>
<int key="firstAttribute">3</int>
<int key="relation">0</int>
<reference key="secondItem" ref="505772708"/>
<int key="secondAttribute">3</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">11</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="505772708"/>
<int key="scoringType">3</int>
<float key="scoringTypeFloat">9</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="124660203">
<reference key="firstItem" ref="615770799"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="505772708"/>
<int key="secondAttribute">5</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">17</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="505772708"/>
<int key="scoringType">3</int>
<float key="scoringTypeFloat">9</float>
<int key="contentType">3</int>
</object>
<reference ref="615770799"/>
</object> </object>
<reference key="parent" ref="256434433"/> <reference key="parent" ref="553559566"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">578</int>
<reference key="object" ref="373530427"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="602054441"/>
<object class="IBNSLayoutConstraint" id="350454218">
<reference key="firstItem" ref="373530427"/>
<int key="firstAttribute">8</int>
<int key="relation">0</int>
<nil key="secondItem"/>
<int key="secondAttribute">0</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">17</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="373530427"/>
<int key="scoringType">3</int>
<float key="scoringTypeFloat">9</float>
<int key="contentType">1</int>
</object>
</object>
<reference key="parent" ref="505772708"/>
</object> </object>
<object class="IBObjectRecord"> <object class="IBObjectRecord">
<int key="objectID">544</int> <int key="objectID">579</int>
<reference key="object" ref="722199198"/> <reference key="object" ref="602054441"/>
<reference key="parent" ref="879600957"/> <reference key="parent" ref="373530427"/>
</object> </object>
<object class="IBObjectRecord"> <object class="IBObjectRecord">
<int key="objectID">546</int> <int key="objectID">594</int>
<reference key="object" ref="717955434"/> <reference key="object" ref="615770799"/>
<reference key="parent" ref="553559566"/> <object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="1006424888"/>
<object class="IBNSLayoutConstraint" id="710625895">
<reference key="firstItem" ref="615770799"/>
<int key="firstAttribute">8</int>
<int key="relation">0</int>
<nil key="secondItem"/>
<int key="secondAttribute">0</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">50</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="615770799"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">1</int>
</object>
<object class="IBNSLayoutConstraint" id="1014208838">
<reference key="firstItem" ref="615770799"/>
<int key="firstAttribute">7</int>
<int key="relation">0</int>
<nil key="secondItem"/>
<int key="secondAttribute">0</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">50</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="615770799"/>
<int key="scoringType">3</int>
<float key="scoringTypeFloat">9</float>
<int key="contentType">1</int>
</object>
</object>
<reference key="parent" ref="505772708"/>
</object> </object>
<object class="IBObjectRecord"> <object class="IBObjectRecord">
<int key="objectID">549</int> <int key="objectID">595</int>
<reference key="object" ref="91820041"/> <reference key="object" ref="1006424888"/>
<reference key="parent" ref="0"/> <reference key="parent" ref="615770799"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">596</int>
<reference key="object" ref="472484220"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="429971541"/>
<object class="IBNSLayoutConstraint" id="308636502">
<reference key="firstItem" ref="472484220"/>
<int key="firstAttribute">8</int>
<int key="relation">1</int>
<nil key="secondItem"/>
<int key="secondAttribute">0</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">34</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="472484220"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">1</int>
</object>
<object class="IBNSLayoutConstraint" id="398152041">
<reference key="firstItem" ref="472484220"/>
<int key="firstAttribute">8</int>
<int key="relation">0</int>
<nil key="secondItem"/>
<int key="secondAttribute">0</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">56</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="472484220"/>
<int key="scoringType">3</int>
<float key="scoringTypeFloat">9</float>
<int key="contentType">1</int>
</object>
<object class="IBNSLayoutConstraint" id="775719842">
<reference key="firstItem" ref="472484220"/>
<int key="firstAttribute">7</int>
<int key="relation">0</int>
<nil key="secondItem"/>
<int key="secondAttribute">0</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">230</double>
</object>
<float key="priority">652</float>
<reference key="containingView" ref="472484220"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">1</int>
</object>
</object>
<reference key="parent" ref="505772708"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">597</int>
<reference key="object" ref="429971541"/>
<reference key="parent" ref="472484220"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">617</int>
<reference key="object" ref="141598972"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="702625398"/>
</object>
<reference key="parent" ref="649796088"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">618</int>
<reference key="object" ref="702625398"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="943041763"/>
<reference ref="883464109"/>
<reference ref="858489037"/>
<reference ref="13890772"/>
<reference ref="713570148"/>
<reference ref="847949808"/>
<reference ref="787531788"/>
<reference ref="269865460"/>
<reference ref="157520762"/>
<reference ref="245280452"/>
<reference ref="1012221138"/>
</object>
<reference key="parent" ref="141598972"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">622</int>
<reference key="object" ref="13890772"/>
<reference key="parent" ref="702625398"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">623</int>
<reference key="object" ref="713570148"/>
<reference key="parent" ref="702625398"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">624</int>
<reference key="object" ref="847949808"/>
<reference key="parent" ref="702625398"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">625</int>
<reference key="object" ref="787531788"/>
<reference key="parent" ref="702625398"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">626</int>
<reference key="object" ref="269865460"/>
<reference key="parent" ref="702625398"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">627</int>
<reference key="object" ref="157520762"/>
<reference key="parent" ref="702625398"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">628</int>
<reference key="object" ref="245280452"/>
<reference key="parent" ref="702625398"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">629</int>
<reference key="object" ref="1012221138"/>
<reference key="parent" ref="702625398"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">619</int>
<reference key="object" ref="943041763"/>
<reference key="parent" ref="702625398"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">621</int>
<reference key="object" ref="858489037"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="878241342"/>
</object>
<reference key="parent" ref="702625398"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">630</int>
<reference key="object" ref="878241342"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="56667518"/>
</object>
<reference key="parent" ref="858489037"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">631</int>
<reference key="object" ref="56667518"/>
<reference key="parent" ref="878241342"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">620</int>
<reference key="object" ref="883464109"/>
<reference key="parent" ref="702625398"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">694</int>
<reference key="object" ref="308636502"/>
<reference key="parent" ref="472484220"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">702</int>
<reference key="object" ref="716515170"/>
<reference key="parent" ref="505772708"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">714</int>
<reference key="object" ref="467789989"/>
<reference key="parent" ref="439893737"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">732</int>
<reference key="object" ref="710625895"/>
<reference key="parent" ref="615770799"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">813</int>
<reference key="object" ref="350454218"/>
<reference key="parent" ref="373530427"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">814</int>
<reference key="object" ref="1014208838"/>
<reference key="parent" ref="615770799"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">816</int>
<reference key="object" ref="124660203"/>
<reference key="parent" ref="505772708"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">824</int>
<reference key="object" ref="210332473"/>
<reference key="parent" ref="505772708"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">836</int>
<reference key="object" ref="971396673"/>
<reference key="parent" ref="505772708"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">837</int>
<reference key="object" ref="14444973"/>
<reference key="parent" ref="505772708"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">838</int>
<reference key="object" ref="1049409873"/>
<reference key="parent" ref="505772708"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">839</int>
<reference key="object" ref="792626335"/>
<reference key="parent" ref="439893737"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">840</int>
<reference key="object" ref="865651107"/>
<reference key="parent" ref="439893737"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">841</int>
<reference key="object" ref="590922666"/>
<reference key="parent" ref="439893737"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">842</int>
<reference key="object" ref="398152041"/>
<reference key="parent" ref="472484220"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">843</int>
<reference key="object" ref="775719842"/>
<reference key="parent" ref="472484220"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">844</int>
<reference key="object" ref="226440407"/>
<reference key="parent" ref="505772708"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">845</int>
<reference key="object" ref="376417113"/>
<reference key="parent" ref="505772708"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">846</int>
<reference key="object" ref="958031551"/>
<reference key="parent" ref="505772708"/>
</object> </object>
</object> </object>
</object> </object>
...@@ -889,6 +1771,7 @@ ...@@ -889,6 +1771,7 @@
<string>371.IBPluginDependency</string> <string>371.IBPluginDependency</string>
<string>371.IBWindowTemplateEditedContentRect</string> <string>371.IBWindowTemplateEditedContentRect</string>
<string>371.NSWindowTemplate.visibleAtLaunch</string> <string>371.NSWindowTemplate.visibleAtLaunch</string>
<string>372.IBNSViewMetadataConstraints</string>
<string>372.IBPluginDependency</string> <string>372.IBPluginDependency</string>
<string>420.IBPluginDependency</string> <string>420.IBPluginDependency</string>
<string>490.IBPluginDependency</string> <string>490.IBPluginDependency</string>
...@@ -896,21 +1779,71 @@ ...@@ -896,21 +1779,71 @@
<string>492.IBPluginDependency</string> <string>492.IBPluginDependency</string>
<string>494.IBPluginDependency</string> <string>494.IBPluginDependency</string>
<string>5.IBPluginDependency</string> <string>5.IBPluginDependency</string>
<string>537.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints</string>
<string>537.IBPluginDependency</string> <string>537.IBPluginDependency</string>
<string>538.IBPluginDependency</string> <string>538.IBPluginDependency</string>
<string>540.IBPluginDependency</string> <string>540.IBPluginDependency</string>
<string>541.IBPluginDependency</string> <string>541.IBPluginDependency</string>
<string>541.ibExternalAutomaticallyCalculatesRowSizeFromViewHeight</string>
<string>542.IBPluginDependency</string> <string>542.IBPluginDependency</string>
<string>543.IBPluginDependency</string> <string>542.isInViewBasedMode</string>
<string>544.IBPluginDependency</string> <string>542.prototypeCellViews</string>
<string>546.IBPluginDependency</string> <string>546.IBPluginDependency</string>
<string>549.IBPluginDependency</string> <string>555.IBPluginDependency</string>
<string>56.IBPluginDependency</string> <string>56.IBPluginDependency</string>
<string>57.IBPluginDependency</string> <string>57.IBPluginDependency</string>
<string>577.IBNSViewMetadataConstraints</string>
<string>577.IBPluginDependency</string>
<string>578.IBNSViewMetadataConstraints</string>
<string>578.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints</string>
<string>578.IBPluginDependency</string>
<string>579.IBPluginDependency</string>
<string>58.IBPluginDependency</string> <string>58.IBPluginDependency</string>
<string>594.IBNSViewMetadataConstraints</string>
<string>594.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints</string>
<string>594.IBPluginDependency</string>
<string>595.IBPluginDependency</string>
<string>596.IBNSViewMetadataConstraints</string>
<string>596.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints</string>
<string>596.IBPluginDependency</string>
<string>597.IBPluginDependency</string>
<string>617.IBPluginDependency</string>
<string>618.IBPluginDependency</string>
<string>619.IBPluginDependency</string>
<string>620.IBPluginDependency</string>
<string>621.IBPluginDependency</string>
<string>622.IBPluginDependency</string>
<string>623.IBPluginDependency</string>
<string>624.IBPluginDependency</string>
<string>625.IBPluginDependency</string>
<string>626.IBPluginDependency</string>
<string>627.IBPluginDependency</string>
<string>628.IBPluginDependency</string>
<string>629.IBPluginDependency</string>
<string>630.IBPluginDependency</string>
<string>631.IBPluginDependency</string>
<string>694.IBPluginDependency</string>
<string>702.IBPluginDependency</string>
<string>714.IBPluginDependency</string>
<string>732.IBPluginDependency</string>
<string>813.IBPluginDependency</string>
<string>814.IBPluginDependency</string>
<string>816.IBPluginDependency</string>
<string>824.IBPluginDependency</string>
<string>836.IBPluginDependency</string>
<string>837.IBPluginDependency</string>
<string>838.IBPluginDependency</string>
<string>839.IBPluginDependency</string>
<string>840.IBPluginDependency</string>
<string>841.IBPluginDependency</string>
<string>842.IBPluginDependency</string>
<string>843.IBPluginDependency</string>
<string>844.IBPluginDependency</string>
<string>845.IBPluginDependency</string>
<string>846.IBPluginDependency</string>
<string>92.IBPluginDependency</string> <string>92.IBPluginDependency</string>
</object> </object>
<object class="NSMutableArray" key="dict.values"> <object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
...@@ -932,6 +1865,89 @@ ...@@ -932,6 +1865,89 @@
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{380, 496}, {480, 360}}</string> <string>{{380, 496}, {480, 360}}</string>
<integer value="1"/> <integer value="1"/>
<object class="NSMutableArray">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="467789989"/>
<reference ref="792626335"/>
<reference ref="865651107"/>
<reference ref="590922666"/>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES"/>
<object class="NSArray">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="505772708"/>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSArray">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="124660203"/>
<reference ref="210332473"/>
<reference ref="971396673"/>
<reference ref="14444973"/>
<reference ref="1049409873"/>
<reference ref="226440407"/>
<reference ref="958031551"/>
<reference ref="716515170"/>
<reference ref="376417113"/>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSMutableArray">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="350454218"/>
</object>
<boolean value="NO"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSMutableArray">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="710625895"/>
<reference ref="1014208838"/>
</object>
<boolean value="NO"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSArray">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="308636502"/>
<reference ref="398152041"/>
<reference ref="775719842"/>
</object>
<boolean value="NO"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
...@@ -966,7 +1982,7 @@ ...@@ -966,7 +1982,7 @@
<reference key="dict.values" ref="0"/> <reference key="dict.values" ref="0"/>
</object> </object>
<nil key="sourceID"/> <nil key="sourceID"/>
<int key="maxID">554</int> <int key="maxID">849</int>
</object> </object>
<object class="IBClassDescriber" key="IBDocument.Classes"> <object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions"> <object class="NSMutableArray" key="referencedPartialClassDescriptions">
...@@ -975,14 +1991,42 @@ ...@@ -975,14 +1991,42 @@
<string key="className">AppDelegate</string> <string key="className">AppDelegate</string>
<string key="superclassName">NSObject</string> <string key="superclassName">NSObject</string>
<object class="NSMutableDictionary" key="outlets"> <object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">window</string> <bool key="EncodedWithXMLCoder">YES</bool>
<string key="NS.object.0">NSWindow</string> <object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>tableView</string>
<string>tweetsArrayController</string>
<string>window</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>NSTableView</string>
<string>NSArrayController</string>
<string>NSWindow</string>
</object>
</object> </object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName"> <object class="NSMutableDictionary" key="toOneOutletInfosByName">
<string key="NS.key.0">window</string> <bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBToOneOutletInfo" key="NS.object.0"> <object class="NSArray" key="dict.sortedKeys">
<string key="name">window</string> <bool key="EncodedWithXMLCoder">YES</bool>
<string key="candidateClassName">NSWindow</string> <string>tableView</string>
<string>tweetsArrayController</string>
<string>window</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBToOneOutletInfo">
<string key="name">tableView</string>
<string key="candidateClassName">NSTableView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">tweetsArrayController</string>
<string key="candidateClassName">NSArrayController</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">window</string>
<string key="candidateClassName">NSWindow</string>
</object>
</object> </object>
</object> </object>
<object class="IBClassDescriptionSource" key="sourceIdentifier"> <object class="IBClassDescriptionSource" key="sourceIdentifier">
...@@ -991,32 +2035,17 @@ ...@@ -991,32 +2035,17 @@
</object> </object>
</object> </object>
<object class="IBPartialClassDescription"> <object class="IBPartialClassDescription">
<string key="className">NearbySpotsController</string> <string key="className">NSLayoutConstraint</string>
<string key="superclassName">NSObject</string> <string key="superclassName">NSObject</string>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">tableView</string>
<string key="NS.object.0">NSTableView</string>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<string key="NS.key.0">tableView</string>
<object class="IBToOneOutletInfo" key="NS.object.0">
<string key="name">tableView</string>
<string key="candidateClassName">NSTableView</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier"> <object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string> <string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/NearbySpotsController.h</string> <string key="minorKey">./Classes/NSLayoutConstraint.h</string>
</object> </object>
</object> </object>
</object> </object>
</object> </object>
<int key="IBDocument.localizationMode">0</int> <int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string> <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<real value="0.0" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies"> <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string> <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
<integer value="3000" key="NS.object.0"/> <integer value="3000" key="NS.object.0"/>
...@@ -1029,14 +2058,13 @@ ...@@ -1029,14 +2058,13 @@
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
<string>NSMenuCheckmark</string> <string>NSMenuCheckmark</string>
<string>NSMenuMixedState</string> <string>NSMenuMixedState</string>
<string>placeholder-stamp</string>
</object> </object>
<object class="NSMutableArray" key="dict.values"> <object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool> <bool key="EncodedWithXMLCoder">YES</bool>
<string>{9, 8}</string> <string>{11, 11}</string>
<string>{7, 2}</string> <string>{10, 3}</string>
<string>{50, 50}</string>
</object> </object>
</object> </object>
<bool key="IBDocument.UseAutolayout">YES</bool>
</data> </data>
</archive> </archive>
### Implicit target definition :-/
xcodeproj "AFNetworking Mac Example.xcodeproj"
####
workspace 'AFNetworking Examples.xcworkspace'
target "AFNetworking Example" do
platform :osx, '10.8'
xcodeproj "AFNetworking Mac Example.xcodeproj"
pod "AFNetworking", "1.3.3"
end
target "AFNetworking iOS Example" do
platform :ios, '7.0'
xcodeproj "AFNetworking iOS Example.xcodeproj"
pod "AFNetworking", "1.3.3"
end
#import <Availability.h>
#if __IPHONE_OS_VERSION_MIN_REQUIRED
#ifndef __IPHONE_3_0
#warning "This project uses features only available in iPhone SDK 3.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <SystemConfiguration/SystemConfiguration.h>
#import <MobileCoreServices/MobileCoreServices.h>
#endif
#else
#ifdef __OBJC__
#import <Cocoa/Cocoa.h>
#import <SystemConfiguration/SystemConfiguration.h>
#import <CoreServices/CoreServices.h>
#endif
#endif
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -10,6 +10,24 @@ ...@@ -10,6 +10,24 @@
<string>${EXECUTABLE_NAME}</string> <string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key> <key>CFBundleIconFile</key>
<string></string> <string></string>
<key>CFBundleIconFiles</key>
<array>
<string>Icon.png</string>
<string>Icon@2x.png</string>
</array>
<key>CFBundleIcons</key>
<dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>Icon.png</string>
<string>Icon@2x.png</string>
</array>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
</dict>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>com.alamofire.${PRODUCT_NAME:rfc1034identifier}</string> <string>com.alamofire.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
...@@ -23,9 +41,13 @@ ...@@ -23,9 +41,13 @@
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>0.1.0</string> <string>1.0.0</string>
<key>LSRequiresIPhoneOS</key> <key>LSRequiresIPhoneOS</key>
<true/> <true/>
<key>UIPrerenderedIcon</key>
<true/>
<key>UIStatusBarHidden</key>
<false/>
<key>UISupportedInterfaceOrientations</key> <key>UISupportedInterfaceOrientations</key>
<array> <array>
<string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationPortrait</string>
......
// main.m // main.m
// // Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
// Copyright (c) 2011 Gowalla (http://gowalla.com/)
// //
// Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal // of this software and associated documentation files (the "Software"), to deal
...@@ -20,10 +19,19 @@ ...@@ -20,10 +19,19 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE. // THE SOFTWARE.
#if __IPHONE_OS_VERSION_MIN_REQUIRED
#import <UIKit/UIKit.h>
#import <Cocoa/Cocoa.h> int main(int argc, char *argv[]) {
@autoreleasepool {
int retVal = UIApplicationMain(argc, argv, @"UIApplication", @"AppDelegate");
return retVal;
}
}
#else
#import <Cocoa/Cocoa.h>
int main(int argc, char *argv[]) int main(int argc, char *argv[]) {
{ return NSApplicationMain(argc, (const char **)argv);
return NSApplicationMain(argc, (const char **)argv); }
} #endif
// NearbySpotsViewController.h
//
// Copyright (c) 2011 Gowalla (http://gowalla.com/)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
#import <Cocoa/Cocoa.h>
#import <CoreLocation/CoreLocation.h>
@interface NearbySpotsController : NSObject <CLLocationManagerDelegate, NSTableViewDataSource, NSTableViewDelegate>
@property (strong) IBOutlet NSTableView *tableView;
@end
// NearbySpotsViewController.m
//
// Copyright (c) 2011 Gowalla (http://gowalla.com/)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
#import "NearbySpotsController.h"
#import "Spot.h"
#import "AFImageRequestOperation.h"
#import "AFImageCache.h"
@interface NearbySpotsController ()
@property (strong) NSArray *nearbySpots;
@property (strong) CLLocationManager *locationManager;
@property (strong) NSOperationQueue *imageOperationQueue;
- (void)loadSpotsForLocation:(CLLocation *)location;
@end
@implementation NearbySpotsController
@synthesize nearbySpots = _nearbySpots;
@synthesize locationManager = _locationManager;
@synthesize imageOperationQueue = _imageOperationQueue;
@synthesize tableView = _tableView;
- (id)init {
self = [super init];
if (!self) {
return nil;
}
self.nearbySpots = [NSArray array];
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
self.locationManager.distanceFilter = 80.0;
self.imageOperationQueue = [[NSOperationQueue alloc] init];
self.imageOperationQueue.maxConcurrentOperationCount = 8;
return self;
}
- (void)awakeFromNib {
// Load from a fixed location, in case location services are disabled or unavailable
CLLocation *austin = [[CLLocation alloc] initWithLatitude:30.2669444 longitude:-97.7427778];
[self loadSpotsForLocation:austin];
[self.locationManager startUpdatingLocation];
}
- (void)loadSpotsForLocation:(CLLocation *)location {
[Spot spotsWithURLString:@"/spots" near:location parameters:[NSDictionary dictionaryWithObject:@"128" forKey:@"per_page"] block:^(NSArray *records) {
self.nearbySpots = [records sortedArrayUsingComparator:^ NSComparisonResult(id obj1, id obj2) {
CLLocationDistance d1 = [[(Spot *)obj1 location] distanceFromLocation:location];
CLLocationDistance d2 = [[(Spot *)obj2 location] distanceFromLocation:location];
if (d1 < d2) {
return NSOrderedAscending;
} else if (d1 > d2) {
return NSOrderedDescending;
} else {
return NSOrderedSame;
}
}];
[self.tableView reloadData];
}];
}
#pragma mark - CLLocationManagerDelegate
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
[self loadSpotsForLocation:newLocation];
}
#pragma mark - NSTableViewDataSource
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
return [self.nearbySpots count];
}
// The following is what happens when a longtime iOS dev attempts to work with AppKit. I'm sure there's a _much_ better way to do this.
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
Spot *spot = [self.nearbySpots objectAtIndex:row];
if ([[tableColumn dataCell] isMemberOfClass:[NSImageCell class]]) {
NSURL *imageURL = [NSURL URLWithString:spot.imageURLString];
NSImage *image = [[AFImageCache sharedImageCache] cachedImageForURL:imageURL cacheName:nil];
if (!image) {
NSURLRequest *imageRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:spot.imageURLString]];
AFImageRequestOperation *operation = [AFImageRequestOperation imageRequestOperationWithRequest:imageRequest success:^(NSImage *image) {
[tableView reloadDataForRowIndexes:[NSIndexSet indexSetWithIndex:row] columnIndexes:[NSIndexSet indexSetWithIndex:0]];
}];
[self.imageOperationQueue addOperation:operation];
image = [NSImage imageNamed:@"placeholder-stamp.png"];
}
return image;
} else {
return spot.name;
}
}
@end
// Spot.h
//
// Copyright (c) 2011 Gowalla (http://gowalla.com/)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
@interface Spot : NSObject {
@private
NSString *_name;
NSString *_imageURLString;
NSNumber *_latitude;
NSNumber *_longitude;
}
@property (strong) NSString *name;
@property (strong) NSString *imageURLString;
@property (strong) NSNumber *latitude;
@property (strong) NSNumber *longitude;
@property (readonly) CLLocation *location;
- (id)initWithAttributes:(NSDictionary *)attributes;
+ (void)spotsWithURLString:(NSString *)urlString near:(CLLocation *)location parameters:(NSDictionary *)parameters block:(void (^)(NSArray *records))block;
@end
// Spot.m
//
// Copyright (c) 2011 Gowalla (http://gowalla.com/)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
#import "Spot.h"
#import "AFGowallaAPIClient.h"
@implementation Spot
@synthesize name = _name;
@synthesize imageURLString = _imageURLString;
@synthesize latitude = _latitude;
@synthesize longitude = _longitude;
@dynamic location;
- (id)initWithAttributes:(NSDictionary *)attributes {
self = [super init];
if (!self) {
return nil;
}
self.name = [attributes valueForKeyPath:@"name"];
self.imageURLString = [attributes valueForKeyPath:@"image_url"];
self.latitude = [attributes valueForKeyPath:@"lat"];
self.longitude = [attributes valueForKeyPath:@"lng"];
return self;
}
- (CLLocation *)location {
return [[CLLocation alloc] initWithLatitude:[self.latitude doubleValue] longitude:[self.longitude doubleValue]];
}
+ (void)spotsWithURLString:(NSString *)urlString near:(CLLocation *)location parameters:(NSDictionary *)parameters block:(void (^)(NSArray *records))block {
NSDictionary *mutableParameters = [NSMutableDictionary dictionaryWithDictionary:parameters];
if (location) {
[mutableParameters setValue:[NSString stringWithFormat:@"%1.7f", location.coordinate.latitude] forKey:@"lat"];
[mutableParameters setValue:[NSString stringWithFormat:@"%1.7f", location.coordinate.longitude] forKey:@"lng"];
}
[[AFGowallaAPIClient sharedClient] getPath:urlString parameters:mutableParameters success:^(id object) {
NSMutableArray *mutableRecords = [NSMutableArray array];
for (NSDictionary *attributes in [object valueForKeyPath:@"spots"]) {
Spot *spot = [[Spot alloc] initWithAttributes:attributes];
[mutableRecords addObject:spot];
}
if (block) {
block([NSArray arrayWithArray:mutableRecords]);
}
} failure:^(NSHTTPURLResponse *response, NSError *error) {
if (block) {
block([NSArray array]);
}
}];
}
@end
platform :osx
pod 'FormatterKit'
pod 'AFNetworking', '~> 0.7.0'
//
// Prefix header for all source files of the 'AFNetworking Mac Example' target in the 'AFNetworking Mac Example' project
//
#ifdef __OBJC__
#import <Cocoa/Cocoa.h>
#endif
{\rtf1\ansi\ansicpg1252\cocoartf1138
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
{\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{hyphen\}}{\leveltext\leveltemplateid1\'01\uc0\u8259 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid1}}
{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}}
\vieww9600\viewh8400\viewkind0
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
\f0\b\fs24 \cf0 AFNetworking Creators\
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\pardirnatural
\ls1\ilvl0
\b0 \cf0 {\listtext \uc0\u8259 }Mattt Thompson\
{\listtext \uc0\u8259 }Scott Raymond}
\ No newline at end of file
<?xml version='1.0' encoding='UTF-8'?><Workspace version='1.0'><FileRef location='group:AFNetworking iOS Example.xcodeproj'/><FileRef location='group:Pods/Pods.xcodeproj'/></Workspace>
\ No newline at end of file
// AFNetworkingExampleAppDelegate.m
//
// Copyright (c) 2011 Gowalla (http://gowalla.com/)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
#import "AppDelegate.h"
#import "NearbySpotsViewController.h"
#import "AFNetworkActivityIndicatorManager.h"
@implementation AppDelegate
@synthesize window = _window;
@synthesize navigationController = _navigationController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSURLCache *URLCache = [[[NSURLCache alloc] initWithMemoryCapacity:1024 * 1024 diskCapacity:1024 * 1024 * 5 diskPath:nil] autorelease];
[NSURLCache setSharedURLCache:URLCache];
[[AFNetworkActivityIndicatorManager sharedManager] setEnabled:YES];
UITableViewController *viewController = [[[NearbySpotsViewController alloc] init] autorelease];
self.navigationController = [[[UINavigationController alloc] initWithRootViewController:viewController] autorelease];
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
self.window.backgroundColor = [UIColor whiteColor];
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
}
- (void)dealloc {
[_window release];
[_navigationController release];
[super dealloc];
}
@end
// NearbySpotsViewController.h
//
// Copyright (c) 2011 Gowalla (http://gowalla.com/)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
@interface NearbySpotsViewController : UITableViewController <CLLocationManagerDelegate> {
NSArray *_nearbySpots;
CLLocationManager *_locationManager;
UIActivityIndicatorView *_activityIndicatorView;
}
@end
// Spot.h
//
// Copyright (c) 2011 Gowalla (http://gowalla.com/)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
@interface Spot : NSObject {
@private
NSString *_name;
NSString *_imageURLString;
NSNumber *_latitude;
NSNumber *_longitude;
}
@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSString *imageURLString;
@property (nonatomic, retain) NSNumber *latitude;
@property (nonatomic, retain) NSNumber *longitude;
@property (readonly) CLLocation *location;
- (id)initWithAttributes:(NSDictionary *)attributes;
+ (void)spotsWithURLString:(NSString *)urlString near:(CLLocation *)location parameters:(NSDictionary *)parameters block:(void (^)(NSArray *records))block;
@end
platform :ios
pod 'FormatterKit'
pod 'AFNetworking', '~> 0.7.0'
#import <Availability.h>
#ifndef __IPHONE_3_0
#warning "This project uses features only available in iPhone SDK 3.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#endif
// main.m
//
// Copyright (c) 2011 Gowalla (http://gowalla.com/)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
#import <UIKit/UIKit.h>
int main(int argc, char *argv[]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, @"UIApplication", @"AppDelegate");
[pool release];
return retVal;
}
#
# Be sure to run `pod spec lint Example.podspec.podspec' to ensure this is a
# valid spec.
#
# Remove all comments before submitting the spec. Optional attributes are commented.
#
# For details see: https://github.com/CocoaPods/CocoaPods/wiki/The-podspec-format
#
Pod::Spec.new do |s|
s.name = "Example.podspec"
s.version = "0.0.1"
s.summary = "A short description of Example.podspec."
# s.description = <<-DESC
# An optional longer description of Example.podspec
#
# * Markdown format.
# * Don't worry about the indent, we strip it!
# DESC
s.homepage = "http://EXAMPLE/Example.podspec"
# Specify the license type. CocoaPods detects automatically the license file if it is named
# 'LICENCE*.*' or 'LICENSE*.*', however if the name is different, specify it.
s.license = 'MIT (example)'
# s.license = { :type => 'MIT (example)', :file => 'FILE_LICENSE' }
#
# Only if no dedicated file is available include the full text of the license.
#
# s.license = {
# :type => 'MIT (example)',
# :text => <<-LICENSE
# Copyright (C) <year> <copyright holders>
# All rights reserved.
# Redistribution and use in source and binary forms, with or without
# ...
# LICENSE
# }
# Specify the authors of the library, with email addresses. You can often find
# the email addresses of the authors by using the SCM log. E.g. $ git log
#
s.author = { "Jonathan Beilin" => "jbeilin@gmail.com" }
# s.authors = { "Jonathan Beilin" => "jbeilin@gmail.com", "other author" => "and email address" }
#
# If absolutely no email addresses are available, then you can use this form instead.
#
# s.author = 'Jonathan Beilin', 'other author'
# Specify the location from where the source should be retreived.
#
s.source = { :git => "http://EXAMPLE/Example.podspec.git", :tag => "0.0.1" }
# s.source = { :svn => 'http://EXAMPLE/Example.podspec/tags/1.0.0' }
# s.source = { :hg => 'http://EXAMPLE/Example.podspec', :revision => '1.0.0' }
# If this Pod runs only on iOS or OS X, then specify the platform and
# the deployment target.
#
# s.platform = :ios, '5.0'
# s.platform = :ios
# ――― MULTI-PLATFORM VALUES ――――――――――――――――――――――――――――――――――――――――――――――――― #
# If this Pod runs on both platforms, then specify the deployment
# targets.
#
# s.ios.deployment_target = '5.0'
# s.osx.deployment_target = '10.7'
# A list of file patterns which select the source files that should be
# added to the Pods project. If the pattern is a directory then the
# path will automatically have '*.{h,m,mm,c,cpp}' appended.
#
s.source_files = 'Classes', 'Classes/**/*.{h,m}'
# A list of resources included with the Pod. These are copied into the
# target bundle with a build phase script.
#
# s.resource = "icon.png"
# s.resources = "Resources/*.png"
# A list of paths to preserve after installing the Pod.
# CocoaPods cleans by default any file that is not used.
# Please don't include documentation, example, and test files.
#
# s.preserve_paths = "FilesToSave", "MoreFilesToSave"
# Specify a list of frameworks that the application needs to link
# against for this Pod to work.
#
# s.framework = 'SomeFramework'
# s.frameworks = 'SomeFramework', 'AnotherFramework'
# Specify a list of libraries that the application needs to link
# against for this Pod to work.
#
# s.library = 'iconv'
# s.libraries = 'iconv', 'xml2'
# If this Pod uses ARC, specify it like so.
#
# s.requires_arc = true
# If you need to specify any other build settings, add them to the
# xcconfig hash.
#
# s.xcconfig = { 'HEADER_SEARCH_PATHS' => '$(SDKROOT)/usr/include/libxml2' }
# Finally, specify any Pods that this Pod depends on.
#
# s.dependency 'JSONKit', '~> 1.4'
end
# NOTE: This is a spec with a lot of ideas I had that _could_ possibly ever be
# added. So this list should, for now, not be taken as all the current
# possibilities.
Pod::Spec.new do
#############################################################################
# Required attributes
#############################################################################
# This pod’s name.
name 'IcePop'
# This pod’s version.
#
# The version string can contain numbers and periods, such as 1.0.0. A pod is
# a ‘prerelease’ pod if the version has a letter in it, such as 1.0.0.pre.
version '1.0.0'
# A short summary of this pod’s description. Displayed in `pod list -d`.
summary 'A library that retrieves the current price of your favorite ice cream.'
# The list of authors and their email addresses.
#
# This attribute is aliased as `author`, which can be used if there’s only
# one author.
authors 'Eloy Durán' => 'eloy.de.enige@gmail.com', 'Appie Durán' => 'appie@dekleineprins.me'
# The download strategy and the URL of the location of this pod’s source.
#
# Options are:
# * :git => 'git://example.org/ice-pop.git'
# * :svn => 'http://example.org/ice-pop/trunk'
# * :tar => 'http://example.org/ice-pop-1.0.0.tar.gz'
# * :zip => 'http://example.org/ice-pop-1.0.0.zip'
source :git => 'https://github.com/alloy/ice-pop.git'
#############################################################################
# Optional attributes
#############################################################################
# A long description of this pod. It should be more detailed than the summary.
#
# It defaults to the summary.
description %{
This library consumes the icecreamexchange.example.org web API to get the
latest prices of all ice cream products known to man. While it’s being used
in production with much success, it’s still under heavy development.
}
# The directories that contain this pod’s source. These will be placed in
# the `HEADER_SEARCH_PATH`.
#
# It defaults to `Source`.
#
# The attribute is aliased to `source_dir`, which can be used if there’s only
# one directory.
source_dirs 'Source/Controllers', 'Source/Models'
# The platforms this pod compiles for.
#
# It defaults to `OSX`.
#
# The attribute is aliased to `platform`, which can be used if there’s only
# one platform.
platforms 'OSX', 'iPhone'
# The SDK needed to compile this pod’s source.
sdk '>= 10.7'
# The URL of this pod’s home page
homepage 'http://ice-pop.example.org'
# Adds a runtime dependency with version requirements to this pod. You can
# add as much dependencies as you’d like by adding extra `dependency` lines.
#
# TODO See version help
dependency 'AsyncSocket', '~> 0.6', '>= 0.6.3'
# Adds a development dependency to this pod. These are *not* needed by the
# end-user, but only for development of this pod itself.
#
# You can create as many groups as you’d like, however, the `development`
# group is assumed, by CocoaPod, to be a set of dependencies for development
# of this pod itself.
group :development do
dependency 'FakeServer', '>= 1'
end
# The tool that should be used to generate documentation from this pod’s
# header files.
#
# It defaults to `appledoc`.
doc_bin 'appledoc'
# The options passed to the `doc_bin` tool when generating documentation from
# this pod’s header files.
#
# It defaults to options for `appledoc` that set the project name and version.
#
# The options specified will be _merged_ with the defaults.
#
# The attribute is aliased to `doc_option`, which can be used if there’s only
# one option.
doc_options '--project-name' => 'IcePop', '--project-version' => '1.0.0'
# Sets whether or not this pod comes with runnable tests.
#
# It defaults to `false`.
has_tests true
# The tool used to run this pod’s tests.
#
# It defaults to `xcodebuild`.
test_bin 'xcodebuild'
# The options passed to the `test_bin` tool when running this pod’s tests.
#
# It defaults to options for `xcodebuil` that set the Xcode project file and
# the name of the target that runs the tests.
#
# The options specified will be _merged_ with the defaults.
#
# The attribute is aliased to `test_option`, which can be used if there’s
# only one option.
test_options '-project' => 'IcePop.xcodeproj', '-target' => 'Test'
end
platform :ios
target :test, :exclusive => true do
link_with 'TargetTest'
pod 'JSONKit'
end
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
51887BBB147465E00005EA71 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51887BBA147465E00005EA71 /* UIKit.framework */; };
51887BBD147465E00005EA71 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51887BBC147465E00005EA71 /* Foundation.framework */; };
51887BBF147465E00005EA71 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51887BBE147465E00005EA71 /* CoreGraphics.framework */; };
51887BC5147465E00005EA71 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 51887BC3147465E00005EA71 /* InfoPlist.strings */; };
51887BC7147465E00005EA71 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 51887BC6147465E00005EA71 /* main.m */; };
51887BCB147465E00005EA71 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 51887BCA147465E00005EA71 /* AppDelegate.m */; };
51887BDA1474663A0005EA71 /* libPods-test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 51887BD91474663A0005EA71 /* libPods-test.a */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
51887BB6147465E00005EA71 /* TargetTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TargetTest.app; sourceTree = BUILT_PRODUCTS_DIR; };
51887BBA147465E00005EA71 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
51887BBC147465E00005EA71 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
51887BBE147465E00005EA71 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
51887BC2147465E00005EA71 /* TargetTest-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "TargetTest-Info.plist"; sourceTree = "<group>"; };
51887BC4147465E00005EA71 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
51887BC6147465E00005EA71 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
51887BC8147465E00005EA71 /* TargetTest-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "TargetTest-Prefix.pch"; sourceTree = "<group>"; };
51887BC9147465E00005EA71 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
51887BCA147465E00005EA71 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
51887BD91474663A0005EA71 /* libPods-test.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libPods-test.a"; path = "Pods/build/Release-iphoneos/libPods-test.a"; sourceTree = "<group>"; };
51887BDB1474664E0005EA71 /* Pods-test.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "Pods-test.xcconfig"; path = "Pods/Pods-test.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
51887BB3147465E00005EA71 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
51887BDA1474663A0005EA71 /* libPods-test.a in Frameworks */,
51887BBB147465E00005EA71 /* UIKit.framework in Frameworks */,
51887BBD147465E00005EA71 /* Foundation.framework in Frameworks */,
51887BBF147465E00005EA71 /* CoreGraphics.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
51887BAB147465E00005EA71 = {
isa = PBXGroup;
children = (
51887BC0147465E00005EA71 /* TargetTest */,
51887BB9147465E00005EA71 /* Frameworks */,
51887BB7147465E00005EA71 /* Products */,
51887BDB1474664E0005EA71 /* Pods-test.xcconfig */,
);
sourceTree = "<group>";
};
51887BB7147465E00005EA71 /* Products */ = {
isa = PBXGroup;
children = (
51887BB6147465E00005EA71 /* TargetTest.app */,
);
name = Products;
sourceTree = "<group>";
};
51887BB9147465E00005EA71 /* Frameworks */ = {
isa = PBXGroup;
children = (
51887BD91474663A0005EA71 /* libPods-test.a */,
51887BBA147465E00005EA71 /* UIKit.framework */,
51887BBC147465E00005EA71 /* Foundation.framework */,
51887BBE147465E00005EA71 /* CoreGraphics.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
51887BC0147465E00005EA71 /* TargetTest */ = {
isa = PBXGroup;
children = (
51887BC9147465E00005EA71 /* AppDelegate.h */,
51887BCA147465E00005EA71 /* AppDelegate.m */,
51887BC1147465E00005EA71 /* Supporting Files */,
);
path = TargetTest;
sourceTree = "<group>";
};
51887BC1147465E00005EA71 /* Supporting Files */ = {
isa = PBXGroup;
children = (
51887BC2147465E00005EA71 /* TargetTest-Info.plist */,
51887BC3147465E00005EA71 /* InfoPlist.strings */,
51887BC6147465E00005EA71 /* main.m */,
51887BC8147465E00005EA71 /* TargetTest-Prefix.pch */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
51887BB5147465E00005EA71 /* TargetTest */ = {
isa = PBXNativeTarget;
buildConfigurationList = 51887BCE147465E00005EA71 /* Build configuration list for PBXNativeTarget "TargetTest" */;
buildPhases = (
51887BB2147465E00005EA71 /* Sources */,
51887BB3147465E00005EA71 /* Frameworks */,
51887BB4147465E00005EA71 /* Resources */,
C3CAEFD2AF1E4C6D9240991C /* Copy Pods Resources */,
);
buildRules = (
);
dependencies = (
);
name = TargetTest;
productName = TargetTest;
productReference = 51887BB6147465E00005EA71 /* TargetTest.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
51887BAD147465E00005EA71 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0500;
};
buildConfigurationList = 51887BB0147465E00005EA71 /* Build configuration list for PBXProject "TargetTest" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 51887BAB147465E00005EA71;
productRefGroup = 51887BB7147465E00005EA71 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
51887BB5147465E00005EA71 /* TargetTest */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
51887BB4147465E00005EA71 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
51887BC5147465E00005EA71 /* InfoPlist.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
C3CAEFD2AF1E4C6D9240991C /* Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Copy Pods Resources";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Pods-test-resources.sh\"\n";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
51887BB2147465E00005EA71 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
51887BC7147465E00005EA71 /* main.m in Sources */,
51887BCB147465E00005EA71 /* AppDelegate.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
51887BC3147465E00005EA71 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
51887BC4147465E00005EA71 /* en */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
51887BCC147465E00005EA71 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 5.0;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
51887BCD147465E00005EA71 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 5.0;
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
51887BCF147465E00005EA71 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 51887BDB1474664E0005EA71 /* Pods-test.xcconfig */;
buildSettings = {
DSTROOT = /tmp/xcodeproj.dst;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "TargetTest/TargetTest-Prefix.pch";
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
INFOPLIST_FILE = "TargetTest/TargetTest-Info.plist";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = app;
};
name = Debug;
};
51887BD0147465E00005EA71 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 51887BDB1474664E0005EA71 /* Pods-test.xcconfig */;
buildSettings = {
DSTROOT = /tmp/xcodeproj.dst;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "TargetTest/TargetTest-Prefix.pch";
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
INFOPLIST_FILE = "TargetTest/TargetTest-Info.plist";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = app;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
51887BB0147465E00005EA71 /* Build configuration list for PBXProject "TargetTest" */ = {
isa = XCConfigurationList;
buildConfigurations = (
51887BCC147465E00005EA71 /* Debug */,
51887BCD147465E00005EA71 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
51887BCE147465E00005EA71 /* Build configuration list for PBXNativeTarget "TargetTest" */ = {
isa = XCConfigurationList;
buildConfigurations = (
51887BCF147465E00005EA71 /* Debug */,
51887BD0147465E00005EA71 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 51887BAD147465E00005EA71 /* Project object */;
}
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0500"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "51887BB5147465E00005EA71"
BuildableName = "TargetTest.app"
BlueprintName = "TargetTest"
ReferencedContainer = "container:TargetTest.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<Testables>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "51887BB5147465E00005EA71"
BuildableName = "TargetTest.app"
BlueprintName = "TargetTest"
ReferencedContainer = "container:TargetTest.xcodeproj">
</BuildableReference>
</MacroExpansion>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
<BuildableProductRunnable>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "51887BB5147465E00005EA71"
BuildableName = "TargetTest.app"
BlueprintName = "TargetTest"
ReferencedContainer = "container:TargetTest.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
<BuildableProductRunnable>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "51887BB5147465E00005EA71"
BuildableName = "TargetTest.app"
BlueprintName = "TargetTest"
ReferencedContainer = "container:TargetTest.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
<?xml version='1.0' encoding='UTF-8'?><Workspace version='1.0'><FileRef location='group:TargetTest.xcodeproj'/><FileRef location='group:Pods/Pods.xcodeproj'/></Workspace>
\ No newline at end of file
//
// AppDelegate.h
// TargetTest
//
// Created by Eloy Duran on 16-11-11.
// Copyright (c) 2011 __MyCompanyName__. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
//
// AppDelegate.m
// TargetTest
//
// Created by Eloy Duran on 16-11-11.
// Copyright (c) 2011 __MyCompanyName__. All rights reserved.
//
#import "AppDelegate.h"
#import "JSONKit.h"
@implementation AppDelegate
@synthesize window = _window;
- (void)dealloc
{
[_window release];
[super dealloc];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
[JSONDecoder class];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application
{
/*
Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
*/
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
/*
Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
*/
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
/*
Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
*/
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
/*
Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
*/
}
- (void)applicationWillTerminate:(UIApplication *)application
{
/*
Called when the application is about to terminate.
Save data if appropriate.
See also applicationDidEnterBackground:.
*/
}
@end
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFiles</key>
<array/>
<key>CFBundleIdentifier</key>
<string>org.cocoapods.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>
//
// Prefix header for all source files of the 'TargetTest' target in the 'TargetTest' project
//
#import <Availability.h>
#ifndef __IPHONE_3_0
#warning "This project uses features only available in iOS SDK 3.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#endif
//
// main.m
// TargetTest
//
// Created by Eloy Duran on 16-11-11.
// Copyright (c) 2011 __MyCompanyName__. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
Pod::Spec.new do
name 'TestLib'
version '1.0'
summary 'A spec of a lib, to test that it too can be used to develop the lib.'
source :git => 'http://example.local/test.git', :tag => 'v1.0'
dependency 'SSZipArchive', '> 0.1'
dependency 'JSONKit'
dependency 'ASIHTTPRequest', '1.8'
end
...@@ -23,6 +23,7 @@ module Pod ...@@ -23,6 +23,7 @@ module Pod
def validate! def validate!
super super
help! "A name for the Pod is required." unless @name help! "A name for the Pod is required." unless @name
help! "The Pod name cannot contain spaces." if @name.match(/\s/)
end end
def run def run
......
module Pod module Pod
# The version of the cocoapods command line tool. # The version of the cocoapods command line tool.
# #
VERSION = '0.25.0' unless defined? Pod::VERSION VERSION = '0.26.2' unless defined? Pod::VERSION
end end
...@@ -312,6 +312,7 @@ module Pod ...@@ -312,6 +312,7 @@ module Pod
build_configuration.build_settings['MACOSX_DEPLOYMENT_TARGET'] = osx_deployment_target.to_s if osx_deployment_target build_configuration.build_settings['MACOSX_DEPLOYMENT_TARGET'] = osx_deployment_target.to_s if osx_deployment_target
build_configuration.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = ios_deployment_target.to_s if ios_deployment_target build_configuration.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = ios_deployment_target.to_s if ios_deployment_target
build_configuration.build_settings['STRIP_INSTALLED_PRODUCT'] = 'NO' build_configuration.build_settings['STRIP_INSTALLED_PRODUCT'] = 'NO'
build_configuration.build_settings['CLANG_ENABLE_OBJC_ARC'] = 'NO'
end end
end end
end end
...@@ -401,7 +402,8 @@ module Pod ...@@ -401,7 +402,8 @@ module Pod
UI.message "- Writing Xcode project file to #{UI.path sandbox.project_path}" do UI.message "- Writing Xcode project file to #{UI.path sandbox.project_path}" do
pods_project.pods.remove_from_project if pods_project.pods.empty? pods_project.pods.remove_from_project if pods_project.pods.empty?
pods_project.development_pods.remove_from_project if pods_project.development_pods.empty? pods_project.development_pods.remove_from_project if pods_project.development_pods.empty?
pods_project.sort pods_project.sort({:groups_position => :below})
pods_project.recreate_user_schemes(false)
pods_project.save pods_project.save
end end
end end
......
...@@ -183,6 +183,9 @@ module Pod ...@@ -183,6 +183,9 @@ module Pod
target.client_root = environment.installation_root target.client_root = environment.installation_root
target.user_target_uuids = [] target.user_target_uuids = []
target.user_build_configurations = {} target.user_build_configurations = {}
if target_definition.platform.name == :osx
target.archs = '$(ARCHS_STANDARD_64_BIT)'
end
end end
grouped_specs = specs.map do |spec| grouped_specs = specs.map do |spec|
...@@ -191,8 +194,15 @@ module Pod ...@@ -191,8 +194,15 @@ module Pod
grouped_specs.each do |pod_specs| grouped_specs.each do |pod_specs|
pod_target = PodTarget.new(pod_specs, target_definition, sandbox) pod_target = PodTarget.new(pod_specs, target_definition, sandbox)
if config.integrate_targets?
pod_target.user_build_configurations = target.user_build_configurations pod_target.user_build_configurations = target.user_build_configurations
pod_target.archs = @archs_by_target_def[target_definition] pod_target.archs = @archs_by_target_def[target_definition]
else
pod_target.user_build_configurations = {}
if target_definition.platform.name == :osx
pod_target.archs = '$(ARCHS_STANDARD_64_BIT)'
end
end
target.pod_targets << pod_target target.pod_targets << pod_target
end end
end end
...@@ -452,9 +462,7 @@ module Pod ...@@ -452,9 +462,7 @@ module Pod
def compute_archs_for_target_definition(target_definition, user_targets) def compute_archs_for_target_definition(target_definition, user_targets)
archs = [] archs = []
user_targets.each do |target| user_targets.each do |target|
target.build_configurations.each do |configuration| archs << target.common_resolved_build_setting('ARCHS')
archs << configuration.build_settings['ARCHS']
end
end end
archs = archs.compact.uniq.sort archs = archs.compact.uniq.sort
......
...@@ -69,7 +69,7 @@ module Pod ...@@ -69,7 +69,7 @@ module Pod
# #
def add_source_files_references def add_source_files_references
UI.message "- Adding source files to Pods project" do UI.message "- Adding source files to Pods project" do
add_file_accessors_paths_to_pods_group(:source_files, :source_files) add_file_accessors_paths_to_pods_group(:source_files)
end end
end end
...@@ -79,7 +79,7 @@ module Pod ...@@ -79,7 +79,7 @@ module Pod
# #
def add_frameworks_bundles def add_frameworks_bundles
UI.message "- Adding frameworks to Pods project" do UI.message "- Adding frameworks to Pods project" do
add_file_accessors_paths_to_pods_group(:vendored_frameworks, :frameworks_and_libraries) add_file_accessors_paths_to_pods_group(:vendored_frameworks, :frameworks)
end end
end end
...@@ -88,8 +88,8 @@ module Pod ...@@ -88,8 +88,8 @@ module Pod
# @return [void] # @return [void]
# #
def add_vendored_libraries def add_vendored_libraries
UI.message "- Adding frameworks to Pods project" do UI.message "- Adding libraries to Pods project" do
add_file_accessors_paths_to_pods_group(:vendored_libraries, :frameworks_and_libraries) add_file_accessors_paths_to_pods_group(:vendored_libraries, :frameworks)
end end
end end
...@@ -156,7 +156,7 @@ module Pod ...@@ -156,7 +156,7 @@ module Pod
# #
# @return [void] # @return [void]
# #
def add_file_accessors_paths_to_pods_group(file_accessor_key, group_key) def add_file_accessors_paths_to_pods_group(file_accessor_key, group_key = nil)
file_accessors.each do |file_accessor| file_accessors.each do |file_accessor|
paths = file_accessor.send(file_accessor_key) paths = file_accessor.send(file_accessor_key)
paths.each do |path| paths.each do |path|
......
...@@ -43,18 +43,18 @@ module Pod ...@@ -43,18 +43,18 @@ module Pod
deployment_target = library.platform.deployment_target.to_s deployment_target = library.platform.deployment_target.to_s
@target = project.new_target(:static_library, name, platform, deployment_target) @target = project.new_target(:static_library, name, platform, deployment_target)
library.user_build_configurations.each do |bc_name, type|
configuration = @target.add_build_configuration(bc_name, type)
end
settings = {} settings = {}
if library.archs if library.archs
settings['ARCHS'] = library.archs settings['ARCHS'] = library.archs
else
settings.delete('ARCHS')
end end
@target.build_settings('Debug').merge!(settings) @target.build_configurations.each do |configuration|
@target.build_settings('Release').merge!(settings) configuration.build_settings.merge!(settings)
library.user_build_configurations.each do |bc_name, type|
@target.add_build_configuration(bc_name, type)
end end
library.target = @target library.target = @target
......
...@@ -13,7 +13,6 @@ module Pod ...@@ -13,7 +13,6 @@ module Pod
def install! def install!
UI.message "- Installing target `#{library.name}` #{library.platform}" do UI.message "- Installing target `#{library.name}` #{library.platform}" do
add_target add_target
move_target_product_file_reference
add_files_to_build_phases add_files_to_build_phases
add_resources_bundle_targets add_resources_bundle_targets
# create_suport_files_group # create_suport_files_group
...@@ -43,17 +42,10 @@ module Pod ...@@ -43,17 +42,10 @@ module Pod
source_files = file_accessor.source_files source_files = file_accessor.source_files
file_refs = source_files.map { |sf| project.reference_for_path(sf) } file_refs = source_files.map { |sf| project.reference_for_path(sf) }
target.add_file_references(file_refs, flags) target.add_file_references(file_refs, flags)
end end
end end
end end
def move_target_product_file_reference
pod_name = library.pod_name
group = project.group_for_spec(pod_name, :products)
target.product_reference.move(group)
end
# Adds the resources of the Pods to the Pods project. # Adds the resources of the Pods to the Pods project.
# #
# @note The source files are grouped by Pod and in turn by subspec # @note The source files are grouped by Pod and in turn by subspec
...@@ -71,9 +63,7 @@ module Pod ...@@ -71,9 +63,7 @@ module Pod
next next
end end
file_references = paths.map { |sf| project.reference_for_path(sf) } file_references = paths.map { |sf| project.reference_for_path(sf) }
group = project.group_for_spec(file_accessor.spec.name, :products) bundle_target = project.new_resources_bundle(bundle_name, file_accessor.spec_consumer.platform_name)
product_group = project.group_for_spec(file_accessor.spec.name, :resources)
bundle_target = project.new_resources_bundle(bundle_name, file_accessor.spec_consumer.platform_name, product_group)
bundle_target.add_resources(file_references) bundle_target.add_resources(file_references)
library.user_build_configurations.each do |bc_name, type| library.user_build_configurations.each do |bc_name, type|
...@@ -95,12 +85,7 @@ module Pod ...@@ -95,12 +85,7 @@ module Pod
public_gen = Generator::XCConfig::PublicPodXCConfig.new(library) public_gen = Generator::XCConfig::PublicPodXCConfig.new(library)
UI.message "- Generating public xcconfig file at #{UI.path(path)}" do UI.message "- Generating public xcconfig file at #{UI.path(path)}" do
public_gen.save_as(path) public_gen.save_as(path)
#
# TODO
add_file_to_support_group(path) add_file_to_support_group(path)
# relative_path = path.relative_path_from(sandbox.root)
# group = project.group_for_spec(library.root_spec.name, :support_files)
# group.new_file(relative_path)
end end
path = library.xcconfig_private_path path = library.xcconfig_private_path
...@@ -201,7 +186,7 @@ module Pod ...@@ -201,7 +186,7 @@ module Pod
# #
def add_file_to_support_group(path) def add_file_to_support_group(path)
pod_name = library.pod_name pod_name = library.pod_name
group = project.group_for_spec(pod_name, :support_files) group = project.pod_support_files_group(pod_name)
group.new_file(path) group.new_file(path)
end end
......
...@@ -129,7 +129,7 @@ module Pod ...@@ -129,7 +129,7 @@ module Pod
frameworks = user_project.frameworks_group frameworks = user_project.frameworks_group
native_targets.each do |native_target| native_targets.each do |native_target|
library = frameworks.files.select { |f| f.path == target.product_name }.first || library = frameworks.files.select { |f| f.path == target.product_name }.first ||
frameworks.new_static_library(target.name) frameworks.new_product_ref_for_target(target.name, :static_library)
unless native_target.frameworks_build_phase.files_references.include?(library) unless native_target.frameworks_build_phase.files_references.include?(library)
native_target.frameworks_build_phase.add_file_reference(library) native_target.frameworks_build_phase.add_file_reference(library)
end end
......
...@@ -63,8 +63,6 @@ module Pod ...@@ -63,8 +63,6 @@ module Pod
parent_group = development ? development_pods : pods parent_group = development ? development_pods : pods
source_tree = absolute ? :absolute : :group source_tree = absolute ? :absolute : :group
group = parent_group.new_group(pod_name, path, source_tree) group = parent_group.new_group(pod_name, path, source_tree)
support_files_group = group.new_group(SPEC_SUBGROUPS[:support_files])
support_files_group.source_tree = 'SOURCE_ROOT'
group group
end end
...@@ -88,12 +86,8 @@ module Pod ...@@ -88,12 +86,8 @@ module Pod
# @return [Hash] The names of the specification subgroups by key. # @return [Hash] The names of the specification subgroups by key.
# #
SPEC_SUBGROUPS = { SPEC_SUBGROUPS = {
:source_files => 'Source Files', :resources => 'Resources',
:resources => 'Resources', :frameworks => 'Frameworks',
:frameworks_and_libraries => 'Frameworks & Libraries',
:support_files => 'Support Files',
:subspecs => 'Subspecs',
:products => 'Products',
} }
# Returns the group for the specification with the give name creating it if # Returns the group for the specification with the give name creating it if
...@@ -102,22 +96,44 @@ module Pod ...@@ -102,22 +96,44 @@ module Pod
# @param [String] spec_name # @param [String] spec_name
# The full name of the specification. # The full name of the specification.
# #
# @param [Symbol] subgroup_key
# The optional key of the subgroup (@see #{SPEC_SUBGROUPS})
#
# @return [PBXGroup] The group. # @return [PBXGroup] The group.
# #
def group_for_spec(spec_name, subgroup_key = nil) def group_for_spec(spec_name, subgroup_key = nil)
spec_group = spec_group(spec_name) pod_name = Specification.root_name(spec_name)
group = pod_group(pod_name)
raise "[Bug] Unable to locate group for Pod named `#{pod_name}`" unless group
if spec_name != pod_name
subspecs_names = spec_name.gsub(pod_name + '/', '').split('/')
subspecs_names.each do |name|
group = group[name] || group.new_group(name)
end
end
if subgroup_key if subgroup_key
subgroup = SPEC_SUBGROUPS[subgroup_key] subgroup_name = SPEC_SUBGROUPS[subgroup_key]
raise ArgumentError, "Unrecognized subgroup `#{subgroup_key}`" unless subgroup raise ArgumentError, "Unrecognized subgroup key `#{subgroup_key}`" unless subgroup_name
spec_group.find_subpath(subgroup, true) group = group[subgroup_name] || group.new_group(subgroup_name)
else
spec_group
end end
group
end end
# Returns the support files group for the Pod with the given name.
#
# @param [String] pod_name
# The name of the Pod.
#
# @return [PBXGroup] The group.
#
def pod_support_files_group(pod_name)
group = pod_group(pod_name)
support_files_group = group['Support Files']
unless support_files_group
support_files_group = group.new_group('Support Files')
support_files_group.source_tree = 'SOURCE_ROOT'
end
support_files_group
end
public public
...@@ -188,27 +204,6 @@ module Pod ...@@ -188,27 +204,6 @@ module Pod
# #
attr_reader :refs_by_absolute_path attr_reader :refs_by_absolute_path
# Returns the group for the given specification creating it if needed.
#
# @param [String] spec_name
# The full name of the specification.
#
# @return [PBXGroup] The group for the spec with the given name.
#
def spec_group(spec_name)
pod_name = Specification.root_name(spec_name)
group = pod_group(pod_name)
raise "[Bug] Unable to locate group for Pod named `#{pod_name}`" unless group
if spec_name != pod_name
subspecs_names = spec_name.gsub(pod_name + '/', '').split('/')
subspecs_names.each do |name|
subspecs_group = group[SPEC_SUBGROUPS[:subspecs]] || group.new_group(SPEC_SUBGROUPS[:subspecs])
group = subspecs_group[name] || subspecs_group.new_group(name)
end
end
group
end
#-------------------------------------------------------------------------# #-------------------------------------------------------------------------#
end end
......
Subproject commit 2cd7488b0a6c2d8c733b78bce4223a641dc27a1c Subproject commit ea4f2366f53ed7e379b0bf04bb6690ac4676f350
require File.expand_path('../../../spec_helper', __FILE__)
require 'xcodeproj'
module Pod
describe Command::Lib::Create do
it "complains if wrong parameters" do
lambda { run_command('lib', 'create') }.should.raise CLAide::Help
end
it "complains if pod name contains spaces" do
lambda { run_command('lib', 'create', 'Pod Name With Spaces') }.should.raise CLAide::Help
end
end
end
...@@ -347,6 +347,10 @@ describe "Integration" do ...@@ -347,6 +347,10 @@ describe "Integration" do
check "install --no-repo-update", "install_custom_workspace" check "install --no-repo-update", "install_custom_workspace"
end end
describe "Integrates a target with custom build settings" do
check "install --no-repo-update", "install_custom_build_configuration"
end
# @todo add tests for all the hooks API # @todo add tests for all the hooks API
# #
describe "Runs the Podfile callbacks" do describe "Runs the Podfile callbacks" do
......
...@@ -345,11 +345,8 @@ module Pod ...@@ -345,11 +345,8 @@ module Pod
it "infers the platform from the user targets" do it "infers the platform from the user targets" do
user_project = Xcodeproj::Project.new('path') user_project = Xcodeproj::Project.new('path')
target = user_project.new_target(:application, 'Target', :ios) target = user_project.new_target(:application, 'Target', :ios)
configuration = target.build_configuration_list.build_configurations.first target.build_configuration_list.set_setting('SDKROOT', 'iphoneos')
configuration.build_settings = { target.build_configuration_list.set_setting('IPHONEOS_DEPLOYMENT_TARGET', '4.0')
'SDKROOT' => 'iphoneos',
'IPHONEOS_DEPLOYMENT_TARGET' => '4.0'
}
target_definition = Podfile::TargetDefinition.new(:default, nil) target_definition = Podfile::TargetDefinition.new(:default, nil)
user_targets = [target] user_targets = [target]
...@@ -362,16 +359,12 @@ module Pod ...@@ -362,16 +359,12 @@ module Pod
user_project = Xcodeproj::Project.new('path') user_project = Xcodeproj::Project.new('path')
target1 = user_project.new_target(:application, 'Target', :ios) target1 = user_project.new_target(:application, 'Target', :ios)
configuration1 = target1.build_configuration_list.build_configurations.first configuration1 = target1.build_configuration_list.build_configurations.first
configuration1.build_settings = { target1.build_configuration_list.set_setting('SDKROOT', 'iphoneos')
'SDKROOT' => 'iphoneos', target1.build_configuration_list.set_setting('IPHONEOS_DEPLOYMENT_TARGET', '4.0')
'IPHONEOS_DEPLOYMENT_TARGET' => '4.0'
}
target2 = user_project.new_target(:application, 'Target', :ios) target2 = user_project.new_target(:application, 'Target', :ios)
configuration2 = target2.build_configuration_list.build_configurations.first target2.build_configuration_list.set_setting('SDKROOT', 'iphoneos')
configuration2.build_settings = { target2.build_configuration_list.set_setting('IPHONEOS_DEPLOYMENT_TARGET', '6.0')
'SDKROOT' => 'iphoneos',
'IPHONEOS_DEPLOYMENT_TARGET' => '6.0'
}
target_definition = Podfile::TargetDefinition.new(:default, nil) target_definition = Podfile::TargetDefinition.new(:default, nil)
user_targets = [target1, target2] user_targets = [target1, target2]
...@@ -383,17 +376,12 @@ module Pod ...@@ -383,17 +376,12 @@ module Pod
it "raises if the user targets have a different platform" do it "raises if the user targets have a different platform" do
user_project = Xcodeproj::Project.new('path') user_project = Xcodeproj::Project.new('path')
target1 = user_project.new_target(:application, 'Target', :ios) target1 = user_project.new_target(:application, 'Target', :ios)
configuration1 = target1.build_configuration_list.build_configurations.first target1.build_configuration_list.set_setting('SDKROOT', 'iphoneos')
configuration1.build_settings = { target1.build_configuration_list.set_setting('IPHONEOS_DEPLOYMENT_TARGET', '4.0')
'SDKROOT' => 'iphoneos',
'IPHONEOS_DEPLOYMENT_TARGET' => '4.0'
}
target2 = user_project.new_target(:application, 'Target', :ios) target2 = user_project.new_target(:application, 'Target', :ios)
configuration2 = target2.build_configuration_list.build_configurations.first target2.build_configuration_list.set_setting('SDKROOT', 'macosx')
configuration2.build_settings = { target2.build_configuration_list.set_setting('IPHONEOS_DEPLOYMENT_TARGET', '10.6')
'SDKROOT' => 'macosx',
'IPHONEOS_DEPLOYMENT_TARGET' => '10.6'
}
target_definition = Podfile::TargetDefinition.new(:default, nil) target_definition = Podfile::TargetDefinition.new(:default, nil)
user_targets = [target1, target2] user_targets = [target1, target2]
......
...@@ -24,17 +24,23 @@ module Pod ...@@ -24,17 +24,23 @@ module Pod
it "adds file references of the source files the Pods project" do it "adds file references of the source files the Pods project" do
@installer.install! @installer.install!
file_ref = @installer.pods_project['Pods/BananaLib/Source Files/Banana.m'] file_ref = @installer.pods_project['Pods/BananaLib/Banana.m']
file_ref.should.be.not.nil file_ref.should.be.not.nil
file_ref.path.should == "Classes/Banana.m" file_ref.path.should == "Classes/Banana.m"
end end
xit "adds the file references of the frameworks of the projet" do it "adds the file references of the frameworks of the project" do
@installer.install!
file_ref = @installer.pods_project['Pods/BananaLib/Frameworks/Bananalib.framework']
file_ref.should.be.not.nil
file_ref.path.should == "Bananalib.framework"
end end
xit "adds the file references of the libraries of the project" do it "adds the file references of the libraries of the project" do
@installer.install!
file_ref = @installer.pods_project['Pods/BananaLib/Frameworks/libBananalib.a']
file_ref.should.be.not.nil
file_ref.path.should == "libBananalib.a"
end end
it "adds file references of the resources the Pods project" do it "adds file references of the resources the Pods project" do
...@@ -87,13 +93,7 @@ module Pod ...@@ -87,13 +93,7 @@ module Pod
end end
end end
describe "#add_file_accessors_paths_to_pods_group" do describe "#header_mappings" do
xit "adds the paths of the paths of the file accessor corresponding to the given key to the Pods project" do
end
end
describe "#add_file_accessors_paths_to_pods_group" do
it "returns the header mappings" do it "returns the header mappings" do
headers_sandbox = Pathname.new('BananaLib') headers_sandbox = Pathname.new('BananaLib')
headers = [Pathname.new('BananaLib/Banana.h')] headers = [Pathname.new('BananaLib/Banana.h')]
......
...@@ -16,7 +16,7 @@ module Pod ...@@ -16,7 +16,7 @@ module Pod
@spec = fixture_spec('banana-lib/BananaLib.podspec') @spec = fixture_spec('banana-lib/BananaLib.podspec')
file_accessor = Sandbox::FileAccessor.new(path_list, @spec.consumer(:ios)) file_accessor = Sandbox::FileAccessor.new(path_list, @spec.consumer(:ios))
@project.add_pod_group('BananaLib', fixture('banana-lib')) @project.add_pod_group('BananaLib', fixture('banana-lib'))
group = @project.group_for_spec('BananaLib', :source_files) group = @project.group_for_spec('BananaLib')
file_accessor.source_files.each do |file| file_accessor.source_files.each do |file|
@project.add_file_reference(file, group) @project.add_file_reference(file, group)
end end
......
...@@ -16,7 +16,7 @@ module Pod ...@@ -16,7 +16,7 @@ module Pod
@spec = fixture_spec('banana-lib/BananaLib.podspec') @spec = fixture_spec('banana-lib/BananaLib.podspec')
file_accessor = Sandbox::FileAccessor.new(path_list, @spec.consumer(:ios)) file_accessor = Sandbox::FileAccessor.new(path_list, @spec.consumer(:ios))
@project.add_pod_group('BananaLib', fixture('banana-lib')) @project.add_pod_group('BananaLib', fixture('banana-lib'))
group = @project.group_for_spec('BananaLib', :source_files) group = @project.group_for_spec('BananaLib')
file_accessor.source_files.each do |file| file_accessor.source_files.each do |file|
@project.add_file_reference(file, group) @project.add_file_reference(file, group)
end end
...@@ -47,7 +47,7 @@ module Pod ...@@ -47,7 +47,7 @@ module Pod
it 'adds the target for the static library to the project' do it 'adds the target for the static library to the project' do
@installer.install! @installer.install!
@project.targets.count.should == 1 @project.targets.count.should == 1
@project.targets.first.name.should == 'Pods-BananaLib' @project.targets.first.name.should == 'Pods-BananaLib'
end end
it "sets VALIDATE_PRODUCT to YES for the Release configuration for iOS targets" do it "sets VALIDATE_PRODUCT to YES for the Release configuration for iOS targets" do
...@@ -102,8 +102,10 @@ module Pod ...@@ -102,8 +102,10 @@ module Pod
#--------------------------------------# #--------------------------------------#
xit 'adds the resource bundle targets' do it 'adds the resource bundle targets' do
@pod_target.file_accessors.first.stubs(:resource_bundles).returns({'banana_bundle' => []})
@installer.install!
@project.targets.map(&:name).should == ["Pods-BananaLib", "banana_bundle"]
end end
xit 'adds the build configurations to the resources bundle targets' do xit 'adds the build configurations to the resources bundle targets' do
......
...@@ -16,7 +16,7 @@ module Pod ...@@ -16,7 +16,7 @@ module Pod
@spec = fixture_spec('banana-lib/BananaLib.podspec') @spec = fixture_spec('banana-lib/BananaLib.podspec')
file_accessor = Sandbox::FileAccessor.new(path_list, @spec.consumer(:ios)) file_accessor = Sandbox::FileAccessor.new(path_list, @spec.consumer(:ios))
@project.add_pod_group('BananaLib', fixture('banana-lib')) @project.add_pod_group('BananaLib', fixture('banana-lib'))
group = @project.group_for_spec('BananaLib', :source_files) group = @project.group_for_spec('BananaLib')
file_accessor.source_files.each do |file| file_accessor.source_files.each do |file|
@project.add_file_reference(file, group) @project.add_file_reference(file, group)
end end
...@@ -29,6 +29,17 @@ module Pod ...@@ -29,6 +29,17 @@ module Pod
@installer = Installer::TargetInstaller.new(environment.sandbox, @pod_target) @installer = Installer::TargetInstaller.new(environment.sandbox, @pod_target)
end end
it "Adds the architectures to the custom build configurations of the user target" do
@pod_target.archs = "$(ARCHS_STANDARD_64_BIT)"
@installer.send(:add_target)
@installer.send(:target).resolved_build_setting('ARCHS').should == {
"Release"=>"$(ARCHS_STANDARD_64_BIT)",
"Debug"=>"$(ARCHS_STANDARD_64_BIT)",
"AppStore"=>"$(ARCHS_STANDARD_64_BIT)",
"Test"=>"$(ARCHS_STANDARD_64_BIT)"
}
end
end end
end end
...@@ -29,7 +29,7 @@ module Pod ...@@ -29,7 +29,7 @@ module Pod
end end
it 'returns the targets that need to be integrated' do it 'returns the targets that need to be integrated' do
pods_library = @sample_project.frameworks_group.new_static_library('Pods') pods_library = @sample_project.frameworks_group.new_product_ref_for_target('Pods', :static_library)
@target.frameworks_build_phase.add_file_reference(pods_library) @target.frameworks_build_phase.add_file_reference(pods_library)
@target_integrator.stubs(:user_project).returns(@sample_project) @target_integrator.stubs(:user_project).returns(@sample_project)
@target_integrator.native_targets.map(&:name).should.be.empty? @target_integrator.native_targets.map(&:name).should.be.empty?
......
...@@ -64,11 +64,6 @@ module Pod ...@@ -64,11 +64,6 @@ module Pod
Pathname.new(group.path).should.be.absolute Pathname.new(group.path).should.be.absolute
end end
it "creates a support file group relative to the project" do
group = @project.add_pod_group('BananaLib', @path, false, true)
group['Support Files'].source_tree.should == 'SOURCE_ROOT'
group['Support Files'].path.should.be.nil
end
end end
#----------------------------------------# #----------------------------------------#
...@@ -108,25 +103,53 @@ module Pod ...@@ -108,25 +103,53 @@ module Pod
it "returns the group for the spec with the given name" do it "returns the group for the spec with the given name" do
group = @project.group_for_spec('BananaLib/Tree') group = @project.group_for_spec('BananaLib/Tree')
group.hierarchy_path.should == '/Pods/BananaLib/Subspecs/Tree' group.hierarchy_path.should == '/Pods/BananaLib/Tree'
end end
it "returns the requested subgroup" do it "doesn't duplicate the groups" do
group = @project.group_for_spec('BananaLib/Tree', :source_files) group_1 = @project.group_for_spec('BananaLib/Tree')
group.hierarchy_path.should == '/Pods/BananaLib/Subspecs/Tree/Source Files' group_2 = @project.group_for_spec('BananaLib/Tree')
group_1.uuid.should == group_2.uuid
end end
it "raises if unable to recognize the subgroup key" do it "returns the subgroup with the given key" do
group = @project.group_for_spec('BananaLib/Tree', :resources)
group.hierarchy_path.should == '/Pods/BananaLib/Tree/Resources'
end
it "doesn't duplicates subgroups" do
group_1 = @project.group_for_spec('BananaLib/Tree', :resources)
group_2 = @project.group_for_spec('BananaLib/Tree', :resources)
group_1.uuid.should == group_2.uuid
end
it "raises if the subgroup key is unrecognized" do
should.raise ArgumentError do should.raise ArgumentError do
@project.group_for_spec('BananaLib/Tree', :unknown) @project.group_for_spec('BananaLib/Tree', :bananaland)
end.message.should.match /Unrecognized subgroup/ end.message.should.match /Unrecognized.*key/
end
end
#----------------------------------------#
describe "#pod_support_files_group" do
before do
@project.add_pod_group('BananaLib', @path, false, true)
end
it "creates a support file group relative to the project" do
group = @project.pod_support_files_group('BananaLib')
group.source_tree.should == 'SOURCE_ROOT'
group.path.should.be.nil
end end
it "doesn't duplicate the groups" do it "doesn't duplicate the groups" do
group_1 = @project.group_for_spec('BananaLib/Tree', :source_files) group_1 = @project.pod_support_files_group('BananaLib')
group_2 = @project.group_for_spec('BananaLib/Tree', :source_files) group_2 = @project.pod_support_files_group('BananaLib')
group_1.uuid.should == group_2.uuid group_1.uuid.should == group_2.uuid
end end
end end
end end
...@@ -139,12 +162,12 @@ module Pod ...@@ -139,12 +162,12 @@ module Pod
before do before do
@project.add_pod_group('BananaLib', environment.sandbox.pod_dir('BananaLib'), false) @project.add_pod_group('BananaLib', environment.sandbox.pod_dir('BananaLib'), false)
@file = environment.sandbox.pod_dir('BananaLib') + "file.m" @file = environment.sandbox.pod_dir('BananaLib') + "file.m"
@group = @project.group_for_spec('BananaLib', :source_files) @group = @project.group_for_spec('BananaLib')
end end
it "adds a file references to the given file" do it "adds a file references to the given file" do
ref = @project.add_file_reference(@file, @group) ref = @project.add_file_reference(@file, @group)
ref.hierarchy_path.should == '/Pods/BananaLib/Source Files/file.m' ref.hierarchy_path.should == '/Pods/BananaLib/file.m'
end end
it "it doesn't duplicate file references for a single path" do it "it doesn't duplicate file references for a single path" do
...@@ -167,15 +190,21 @@ module Pod ...@@ -167,15 +190,21 @@ module Pod
describe "#reference_for_path" do describe "#reference_for_path" do
before do before do
<<<<<<< HEAD
@project.add_pod_group('BananaLib', environment.sandbox.pod_dir('BananaLib'), false) @project.add_pod_group('BananaLib', environment.sandbox.pod_dir('BananaLib'), false)
@file = environment.sandbox.pod_dir('BananaLib') + "file.m" @file = environment.sandbox.pod_dir('BananaLib') + "file.m"
@group = @project.group_for_spec('BananaLib', :source_files) @group = @project.group_for_spec('BananaLib', :source_files)
=======
@project.add_pod_group('BananaLib', config.sandbox.pod_dir('BananaLib'), false)
@file = config.sandbox.pod_dir('BananaLib') + "file.m"
@group = @project.group_for_spec('BananaLib')
>>>>>>> master
@project.add_file_reference(@file, @group) @project.add_file_reference(@file, @group)
end end
it "returns the reference for the given path" do it "returns the reference for the given path" do
ref = @project.reference_for_path(@file) ref = @project.reference_for_path(@file)
ref.hierarchy_path.should == '/Pods/BananaLib/Source Files/file.m' ref.hierarchy_path.should == '/Pods/BananaLib/file.m'
end end
it "returns nil if no reference for the given path is available" do it "returns nil if no reference for the given path is available" do
...@@ -205,6 +234,7 @@ module Pod ...@@ -205,6 +234,7 @@ module Pod
#-------------------------------------------------------------------------# #-------------------------------------------------------------------------#
<<<<<<< HEAD
describe "Private helpers" do describe "Private helpers" do
describe "#spec_group" do describe "#spec_group" do
...@@ -228,6 +258,8 @@ module Pod ...@@ -228,6 +258,8 @@ module Pod
#-------------------------------------------------------------------------# #-------------------------------------------------------------------------#
=======
>>>>>>> master
end end
end end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment