Skip to content
Browse files

- Initial commit

  • Loading branch information...
0 parents commit 3aff0c181b06f1c001d7ed440065545a0f288d31 james committed Sep 6, 2011
8 .gitignore
@@ -0,0 +1,8 @@
+.DS_Store
+.svn
+build
+DerivedData
+*.xcodeproj/*.mode1v3
+*.xcodeproj/*.pbxuser
+*.xcodeproj/project.xcworkspace/*
+*.xcodeproj/xcuserdata/*
489 JTObjectMapping.xcodeproj/project.pbxproj
@@ -0,0 +1,489 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 1A7E71C61415F96700AE157A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A7E71C51415F96700AE157A /* UIKit.framework */; };
+ 1A7E71C81415F96700AE157A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A7E71C71415F96700AE157A /* Foundation.framework */; };
+ 1A7E71CA1415F96700AE157A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A7E71C91415F96700AE157A /* CoreGraphics.framework */; };
+ 1A7E71D01415F96700AE157A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1A7E71CE1415F96700AE157A /* InfoPlist.strings */; };
+ 1A7E71D21415F96700AE157A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A7E71D11415F96700AE157A /* main.m */; };
+ 1A7E71D61415F96800AE157A /* JTObjectMappingAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A7E71D51415F96800AE157A /* JTObjectMappingAppDelegate.m */; };
+ 1A7E71D91415F96800AE157A /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1A7E71D71415F96800AE157A /* MainWindow.xib */; };
+ 1A7E71DC1415F96800AE157A /* JTObjectMappingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A7E71DB1415F96800AE157A /* JTObjectMappingViewController.m */; };
+ 1A7E71DF1415F96800AE157A /* JTObjectMappingViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1A7E71DD1415F96800AE157A /* JTObjectMappingViewController.xib */; };
+ 1A7E71E71415F96800AE157A /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A7E71E61415F96800AE157A /* SenTestingKit.framework */; };
+ 1A7E71E81415F96800AE157A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A7E71C51415F96700AE157A /* UIKit.framework */; };
+ 1A7E71E91415F96800AE157A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A7E71C71415F96700AE157A /* Foundation.framework */; };
+ 1A7E71EA1415F96800AE157A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A7E71C91415F96700AE157A /* CoreGraphics.framework */; };
+ 1A7E71F21415F96800AE157A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1A7E71F01415F96800AE157A /* InfoPlist.strings */; };
+ 1A7E71F41415F96800AE157A /* JTObjectMappingTests.h in Resources */ = {isa = PBXBuildFile; fileRef = 1A7E71F31415F96800AE157A /* JTObjectMappingTests.h */; };
+ 1A7E71F61415F96800AE157A /* JTObjectMappingTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A7E71F51415F96800AE157A /* JTObjectMappingTests.m */; };
+ 1A7E72021415FA1500AE157A /* NSObject+JTObjectMapping.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A7E72011415FA1500AE157A /* NSObject+JTObjectMapping.m */; };
+ 1A7E7208141602C900AE157A /* JTSocialNetworkTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A7E7207141602C900AE157A /* JTSocialNetworkTest.m */; };
+ 1A7E720B141605B300AE157A /* JTMappings.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A7E720A141605B300AE157A /* JTMappings.m */; };
+ 1A7E720E141613C900AE157A /* JTUserTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A7E720D141613C800AE157A /* JTUserTest.m */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 1A7E71EB1415F96800AE157A /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 1A7E71B81415F96700AE157A /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 1A7E71C01415F96700AE157A;
+ remoteInfo = JTObjectMapping;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 1A7E71C11415F96700AE157A /* JTObjectMapping.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JTObjectMapping.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 1A7E71C51415F96700AE157A /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ 1A7E71C71415F96700AE157A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ 1A7E71C91415F96700AE157A /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+ 1A7E71CD1415F96700AE157A /* JTObjectMapping-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "JTObjectMapping-Info.plist"; sourceTree = "<group>"; };
+ 1A7E71CF1415F96700AE157A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ 1A7E71D11415F96700AE157A /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+ 1A7E71D31415F96800AE157A /* JTObjectMapping-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "JTObjectMapping-Prefix.pch"; sourceTree = "<group>"; };
+ 1A7E71D41415F96800AE157A /* JTObjectMappingAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JTObjectMappingAppDelegate.h; sourceTree = "<group>"; };
+ 1A7E71D51415F96800AE157A /* JTObjectMappingAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JTObjectMappingAppDelegate.m; sourceTree = "<group>"; };
+ 1A7E71D81415F96800AE157A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainWindow.xib; sourceTree = "<group>"; };
+ 1A7E71DA1415F96800AE157A /* JTObjectMappingViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JTObjectMappingViewController.h; sourceTree = "<group>"; };
+ 1A7E71DB1415F96800AE157A /* JTObjectMappingViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JTObjectMappingViewController.m; sourceTree = "<group>"; };
+ 1A7E71DE1415F96800AE157A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/JTObjectMappingViewController.xib; sourceTree = "<group>"; };
+ 1A7E71E51415F96800AE157A /* JTObjectMappingTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = JTObjectMappingTests.octest; sourceTree = BUILT_PRODUCTS_DIR; };
+ 1A7E71E61415F96800AE157A /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; };
+ 1A7E71EF1415F96800AE157A /* JTObjectMappingTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "JTObjectMappingTests-Info.plist"; sourceTree = "<group>"; };
+ 1A7E71F11415F96800AE157A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ 1A7E71F31415F96800AE157A /* JTObjectMappingTests.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JTObjectMappingTests.h; sourceTree = "<group>"; };
+ 1A7E71F51415F96800AE157A /* JTObjectMappingTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JTObjectMappingTests.m; sourceTree = "<group>"; };
+ 1A7E72001415FA1500AE157A /* NSObject+JTObjectMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+JTObjectMapping.h"; sourceTree = "<group>"; };
+ 1A7E72011415FA1500AE157A /* NSObject+JTObjectMapping.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+JTObjectMapping.m"; sourceTree = "<group>"; };
+ 1A7E7206141602C900AE157A /* JTSocialNetworkTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JTSocialNetworkTest.h; sourceTree = "<group>"; };
+ 1A7E7207141602C900AE157A /* JTSocialNetworkTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JTSocialNetworkTest.m; sourceTree = "<group>"; };
+ 1A7E7209141605B300AE157A /* JTMappings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JTMappings.h; sourceTree = "<group>"; };
+ 1A7E720A141605B300AE157A /* JTMappings.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JTMappings.m; sourceTree = "<group>"; };
+ 1A7E720C141613C800AE157A /* JTUserTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JTUserTest.h; sourceTree = "<group>"; };
+ 1A7E720D141613C800AE157A /* JTUserTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JTUserTest.m; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 1A7E71BE1415F96700AE157A /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1A7E71C61415F96700AE157A /* UIKit.framework in Frameworks */,
+ 1A7E71C81415F96700AE157A /* Foundation.framework in Frameworks */,
+ 1A7E71CA1415F96700AE157A /* CoreGraphics.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 1A7E71E11415F96800AE157A /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1A7E71E71415F96800AE157A /* SenTestingKit.framework in Frameworks */,
+ 1A7E71E81415F96800AE157A /* UIKit.framework in Frameworks */,
+ 1A7E71E91415F96800AE157A /* Foundation.framework in Frameworks */,
+ 1A7E71EA1415F96800AE157A /* CoreGraphics.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 1A7E71B61415F96700AE157A = {
+ isa = PBXGroup;
+ children = (
+ 1A7E71CB1415F96700AE157A /* JTObjectMapping */,
+ 1A7E71ED1415F96800AE157A /* JTObjectMappingTests */,
+ 1A7E71C41415F96700AE157A /* Frameworks */,
+ 1A7E71C21415F96700AE157A /* Products */,
+ );
+ sourceTree = "<group>";
+ };
+ 1A7E71C21415F96700AE157A /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 1A7E71C11415F96700AE157A /* JTObjectMapping.app */,
+ 1A7E71E51415F96800AE157A /* JTObjectMappingTests.octest */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 1A7E71C41415F96700AE157A /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 1A7E71C51415F96700AE157A /* UIKit.framework */,
+ 1A7E71C71415F96700AE157A /* Foundation.framework */,
+ 1A7E71C91415F96700AE157A /* CoreGraphics.framework */,
+ 1A7E71E61415F96800AE157A /* SenTestingKit.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+ 1A7E71CB1415F96700AE157A /* JTObjectMapping */ = {
+ isa = PBXGroup;
+ children = (
+ 1A7E71FF1415F9D800AE157A /* Source */,
+ 1A7E71D41415F96800AE157A /* JTObjectMappingAppDelegate.h */,
+ 1A7E71D51415F96800AE157A /* JTObjectMappingAppDelegate.m */,
+ 1A7E71D71415F96800AE157A /* MainWindow.xib */,
+ 1A7E71DA1415F96800AE157A /* JTObjectMappingViewController.h */,
+ 1A7E71DB1415F96800AE157A /* JTObjectMappingViewController.m */,
+ 1A7E71DD1415F96800AE157A /* JTObjectMappingViewController.xib */,
+ 1A7E71CC1415F96700AE157A /* Supporting Files */,
+ );
+ path = JTObjectMapping;
+ sourceTree = "<group>";
+ };
+ 1A7E71CC1415F96700AE157A /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ 1A7E71CD1415F96700AE157A /* JTObjectMapping-Info.plist */,
+ 1A7E71CE1415F96700AE157A /* InfoPlist.strings */,
+ 1A7E71D11415F96700AE157A /* main.m */,
+ 1A7E71D31415F96800AE157A /* JTObjectMapping-Prefix.pch */,
+ );
+ name = "Supporting Files";
+ sourceTree = "<group>";
+ };
+ 1A7E71ED1415F96800AE157A /* JTObjectMappingTests */ = {
+ isa = PBXGroup;
+ children = (
+ 1A7E71F31415F96800AE157A /* JTObjectMappingTests.h */,
+ 1A7E71F51415F96800AE157A /* JTObjectMappingTests.m */,
+ 1A7E71EE1415F96800AE157A /* Supporting Files */,
+ 1A7E720C141613C800AE157A /* JTUserTest.h */,
+ 1A7E720D141613C800AE157A /* JTUserTest.m */,
+ 1A7E7206141602C900AE157A /* JTSocialNetworkTest.h */,
+ 1A7E7207141602C900AE157A /* JTSocialNetworkTest.m */,
+ );
+ path = JTObjectMappingTests;
+ sourceTree = "<group>";
+ };
+ 1A7E71EE1415F96800AE157A /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ 1A7E71EF1415F96800AE157A /* JTObjectMappingTests-Info.plist */,
+ 1A7E71F01415F96800AE157A /* InfoPlist.strings */,
+ );
+ name = "Supporting Files";
+ sourceTree = "<group>";
+ };
+ 1A7E71FF1415F9D800AE157A /* Source */ = {
+ isa = PBXGroup;
+ children = (
+ 1A7E72001415FA1500AE157A /* NSObject+JTObjectMapping.h */,
+ 1A7E72011415FA1500AE157A /* NSObject+JTObjectMapping.m */,
+ 1A7E7209141605B300AE157A /* JTMappings.h */,
+ 1A7E720A141605B300AE157A /* JTMappings.m */,
+ );
+ path = Source;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 1A7E71C01415F96700AE157A /* JTObjectMapping */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1A7E71F91415F96800AE157A /* Build configuration list for PBXNativeTarget "JTObjectMapping" */;
+ buildPhases = (
+ 1A7E71BD1415F96700AE157A /* Sources */,
+ 1A7E71BE1415F96700AE157A /* Frameworks */,
+ 1A7E71BF1415F96700AE157A /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = JTObjectMapping;
+ productName = JTObjectMapping;
+ productReference = 1A7E71C11415F96700AE157A /* JTObjectMapping.app */;
+ productType = "com.apple.product-type.application";
+ };
+ 1A7E71E41415F96800AE157A /* JTObjectMappingTests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1A7E71FC1415F96800AE157A /* Build configuration list for PBXNativeTarget "JTObjectMappingTests" */;
+ buildPhases = (
+ 1A7E71E01415F96800AE157A /* Sources */,
+ 1A7E71E11415F96800AE157A /* Frameworks */,
+ 1A7E71E21415F96800AE157A /* Resources */,
+ 1A7E71E31415F96800AE157A /* ShellScript */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 1A7E71EC1415F96800AE157A /* PBXTargetDependency */,
+ );
+ name = JTObjectMappingTests;
+ productName = JTObjectMappingTests;
+ productReference = 1A7E71E51415F96800AE157A /* JTObjectMappingTests.octest */;
+ productType = "com.apple.product-type.bundle";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 1A7E71B81415F96700AE157A /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 1A7E71BB1415F96700AE157A /* Build configuration list for PBXProject "JTObjectMapping" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = 1A7E71B61415F96700AE157A;
+ productRefGroup = 1A7E71C21415F96700AE157A /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 1A7E71C01415F96700AE157A /* JTObjectMapping */,
+ 1A7E71E41415F96800AE157A /* JTObjectMappingTests */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 1A7E71BF1415F96700AE157A /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1A7E71D01415F96700AE157A /* InfoPlist.strings in Resources */,
+ 1A7E71D91415F96800AE157A /* MainWindow.xib in Resources */,
+ 1A7E71DF1415F96800AE157A /* JTObjectMappingViewController.xib in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 1A7E71E21415F96800AE157A /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1A7E71F21415F96800AE157A /* InfoPlist.strings in Resources */,
+ 1A7E71F41415F96800AE157A /* JTObjectMappingTests.h in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ 1A7E71E31415F96800AE157A /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n";
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 1A7E71BD1415F96700AE157A /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1A7E71D21415F96700AE157A /* main.m in Sources */,
+ 1A7E71D61415F96800AE157A /* JTObjectMappingAppDelegate.m in Sources */,
+ 1A7E71DC1415F96800AE157A /* JTObjectMappingViewController.m in Sources */,
+ 1A7E72021415FA1500AE157A /* NSObject+JTObjectMapping.m in Sources */,
+ 1A7E7208141602C900AE157A /* JTSocialNetworkTest.m in Sources */,
+ 1A7E720B141605B300AE157A /* JTMappings.m in Sources */,
+ 1A7E720E141613C900AE157A /* JTUserTest.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 1A7E71E01415F96800AE157A /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1A7E71F61415F96800AE157A /* JTObjectMappingTests.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ 1A7E71EC1415F96800AE157A /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 1A7E71C01415F96700AE157A /* JTObjectMapping */;
+ targetProxy = 1A7E71EB1415F96800AE157A /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+ 1A7E71CE1415F96700AE157A /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 1A7E71CF1415F96700AE157A /* en */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+ 1A7E71D71415F96800AE157A /* MainWindow.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 1A7E71D81415F96800AE157A /* en */,
+ );
+ name = MainWindow.xib;
+ sourceTree = "<group>";
+ };
+ 1A7E71DD1415F96800AE157A /* JTObjectMappingViewController.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 1A7E71DE1415F96800AE157A /* en */,
+ );
+ name = JTObjectMappingViewController.xib;
+ sourceTree = "<group>";
+ };
+ 1A7E71F01415F96800AE157A /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 1A7E71F11415F96800AE157A /* en */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 1A7E71F71415F96800AE157A /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ "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.llvmgcc42;
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+ SDKROOT = iphoneos;
+ };
+ name = Debug;
+ };
+ 1A7E71F81415F96800AE157A /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_VERSION = com.apple.compilers.llvmgcc42;
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+ OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
+ SDKROOT = iphoneos;
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+ 1A7E71FA1415F96800AE157A /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "JTObjectMapping/JTObjectMapping-Prefix.pch";
+ INFOPLIST_FILE = "JTObjectMapping/JTObjectMapping-Info.plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ WRAPPER_EXTENSION = app;
+ };
+ name = Debug;
+ };
+ 1A7E71FB1415F96800AE157A /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "JTObjectMapping/JTObjectMapping-Prefix.pch";
+ INFOPLIST_FILE = "JTObjectMapping/JTObjectMapping-Info.plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ WRAPPER_EXTENSION = app;
+ };
+ name = Release;
+ };
+ 1A7E71FD1415F96800AE157A /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/JTObjectMapping.app/JTObjectMapping";
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(SDKROOT)/Developer/Library/Frameworks",
+ "$(DEVELOPER_LIBRARY_DIR)/Frameworks",
+ );
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "JTObjectMapping/JTObjectMapping-Prefix.pch";
+ INFOPLIST_FILE = "JTObjectMappingTests/JTObjectMappingTests-Info.plist";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ TEST_HOST = "$(BUNDLE_LOADER)";
+ WRAPPER_EXTENSION = octest;
+ };
+ name = Debug;
+ };
+ 1A7E71FE1415F96800AE157A /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/JTObjectMapping.app/JTObjectMapping";
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(SDKROOT)/Developer/Library/Frameworks",
+ "$(DEVELOPER_LIBRARY_DIR)/Frameworks",
+ );
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "JTObjectMapping/JTObjectMapping-Prefix.pch";
+ INFOPLIST_FILE = "JTObjectMappingTests/JTObjectMappingTests-Info.plist";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ TEST_HOST = "$(BUNDLE_LOADER)";
+ WRAPPER_EXTENSION = octest;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 1A7E71BB1415F96700AE157A /* Build configuration list for PBXProject "JTObjectMapping" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1A7E71F71415F96800AE157A /* Debug */,
+ 1A7E71F81415F96800AE157A /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 1A7E71F91415F96800AE157A /* Build configuration list for PBXNativeTarget "JTObjectMapping" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1A7E71FA1415F96800AE157A /* Debug */,
+ 1A7E71FB1415F96800AE157A /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ };
+ 1A7E71FC1415F96800AE157A /* Build configuration list for PBXNativeTarget "JTObjectMappingTests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1A7E71FD1415F96800AE157A /* Debug */,
+ 1A7E71FE1415F96800AE157A /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 1A7E71B81415F96700AE157A /* Project object */;
+}
38 JTObjectMapping/JTObjectMapping-Info.plist
@@ -0,0 +1,38 @@
+<?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>CFBundleIconFile</key>
+ <string></string>
+ <key>CFBundleIdentifier</key>
+ <string>com.stepcase.${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>NSMainNibFile</key>
+ <string>MainWindow</string>
+ <key>UISupportedInterfaceOrientations</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ <string>UIInterfaceOrientationLandscapeLeft</string>
+ <string>UIInterfaceOrientationLandscapeRight</string>
+ </array>
+</dict>
+</plist>
14 JTObjectMapping/JTObjectMapping-Prefix.pch
@@ -0,0 +1,14 @@
+//
+// Prefix header for all source files of the 'JTObjectMapping' target in the 'JTObjectMapping' project
+//
+
+#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
19 JTObjectMapping/JTObjectMappingAppDelegate.h
@@ -0,0 +1,19 @@
+//
+// JTObjectMappingAppDelegate.h
+// JTObjectMapping
+//
+// Created by james on 9/6/11.
+// Copyright 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@class JTObjectMappingViewController;
+
+@interface JTObjectMappingAppDelegate : NSObject <UIApplicationDelegate>
+
+@property (nonatomic, retain) IBOutlet UIWindow *window;
+
+@property (nonatomic, retain) IBOutlet JTObjectMappingViewController *viewController;
+
+@end
73 JTObjectMapping/JTObjectMappingAppDelegate.m
@@ -0,0 +1,73 @@
+//
+// JTObjectMappingAppDelegate.m
+// JTObjectMapping
+//
+// Created by james on 9/6/11.
+// Copyright 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import "JTObjectMappingAppDelegate.h"
+
+#import "JTObjectMappingViewController.h"
+
+@implementation JTObjectMappingAppDelegate
+
+@synthesize window = _window;
+@synthesize viewController = _viewController;
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
+{
+ // Override point for customization after application launch.
+
+ self.window.rootViewController = self.viewController;
+ [self.window makeKeyAndVisible];
+ 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:.
+ */
+}
+
+- (void)dealloc
+{
+ [_window release];
+ [_viewController release];
+ [super dealloc];
+}
+
+@end
13 JTObjectMapping/JTObjectMappingViewController.h
@@ -0,0 +1,13 @@
+//
+// JTObjectMappingViewController.h
+// JTObjectMapping
+//
+// Created by james on 9/6/11.
+// Copyright 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface JTObjectMappingViewController : UIViewController
+
+@end
44 JTObjectMapping/JTObjectMappingViewController.m
@@ -0,0 +1,44 @@
+//
+// JTObjectMappingViewController.m
+// JTObjectMapping
+//
+// Created by james on 9/6/11.
+// Copyright 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import "JTObjectMappingViewController.h"
+
+@implementation JTObjectMappingViewController
+
+- (void)didReceiveMemoryWarning
+{
+ // Releases the view if it doesn't have a superview.
+ [super didReceiveMemoryWarning];
+
+ // Release any cached data, images, etc that aren't in use.
+}
+
+#pragma mark - View lifecycle
+
+/*
+// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
+- (void)viewDidLoad
+{
+ [super viewDidLoad];
+}
+*/
+
+- (void)viewDidUnload
+{
+ [super viewDidUnload];
+ // Release any retained subviews of the main view.
+ // e.g. self.myOutlet = nil;
+}
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
+{
+ // Return YES for supported orientations
+ return (interfaceOrientation == UIInterfaceOrientationPortrait);
+}
+
+@end
32 JTObjectMapping/Source/JTMappings.h
@@ -0,0 +1,32 @@
+//
+// JTMappings.h
+// JTObjectMapping
+//
+// Created by james on 9/6/11.
+// Copyright 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+
+@protocol JTMappings <NSObject>
+
+- (NSString *)key;
+- (NSDictionary *)mapping;
+- (Class)targetClass;
+
+@end
+
+
+
+@interface JTMappings : NSObject <JTMappings>
+
+@property (nonatomic, retain) NSString *key;
+@property (nonatomic, retain) NSDictionary *mapping;
+@property (nonatomic, assign) Class targetClass;
+
++ (id <JTMappings>)mappingWithKey:(NSString *)aKey
+ targetClass:(Class)aClass
+ mapping:(NSDictionary *)aMapping;
+
+@end
29 JTObjectMapping/Source/JTMappings.m
@@ -0,0 +1,29 @@
+//
+// JTMappings.m
+// JTObjectMapping
+//
+// Created by james on 9/6/11.
+// Copyright 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import "JTMappings.h"
+
+@implementation JTMappings
+@synthesize key, mapping, targetClass;
+
++ (id <JTMappings>)mappingWithKey:(NSString *)aKey targetClass:(Class)aClass mapping:(NSDictionary *)aMapping {
+ JTMappings *obj = [[JTMappings alloc] init];
+ obj.key = aKey;
+ obj.mapping = aMapping;
+ obj.targetClass = aClass;
+ return [obj autorelease];
+}
+
+- (void)dealloc {
+ self.key = nil;
+ self.mapping = nil;
+ self.targetClass = nil;
+ [super dealloc];
+}
+
+@end
15 JTObjectMapping/Source/NSObject+JTObjectMapping.h
@@ -0,0 +1,15 @@
+//
+// NSObject+JTObjectMapping.h
+// JTObjectMapping
+//
+// Created by james on 9/6/11.
+// Copyright 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface NSObject (JTObjectMapping)
+
+- (void)setValueFromDictionary:(NSDictionary *)dict mapping:(NSDictionary *)mapping;
+
+@end
37 JTObjectMapping/Source/NSObject+JTObjectMapping.m
@@ -0,0 +1,37 @@
+//
+// NSObject+JTObjectMapping.m
+// JTObjectMapping
+//
+// Created by james on 9/6/11.
+// Copyright 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import "NSObject+JTObjectMapping.h"
+#import "JTMappings.h"
+
+@implementation NSObject (JTObjectMapping)
+
+- (void)setValueFromDictionary:(NSDictionary *)dict mapping:(NSDictionary *)mapping {
+ [dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
+ id mapsToValue = [mapping objectForKey:key];
+ if (mapsToValue != nil) {
+ if ([(NSObject *)mapsToValue isKindOfClass:[NSString class]]) {
+ if ([obj isKindOfClass:[NSNull class]]) {
+ [self setValue:nil forKey:mapsToValue];
+ } else {
+ [self setValue:obj forKey:mapsToValue];
+ }
+ } else if ([mapsToValue conformsToProtocol:@protocol(JTMappings)] && [(NSObject *)obj isKindOfClass:[NSDictionary class]]) {
+ id <JTMappings> mappings = (id <JTMappings>)mapsToValue;
+ NSObject *targetObject = [[mappings.targetClass alloc] init];
+ [targetObject setValueFromDictionary:obj mapping:mappings.mapping];
+ [self setValue:targetObject forKey:mappings.key];
+ [targetObject release];
+ } else {
+ NSAssert2(NO, @"[mapsToValue class]: %@, [obj class]: %@ is not handled", NSStringFromClass([mapsToValue class]), NSStringFromClass([obj class]));
+ }
+ }
+ }];
+}
+
+@end
2 JTObjectMapping/en.lproj/InfoPlist.strings
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+
195 JTObjectMapping/en.lproj/JTObjectMappingViewController.xib
@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1056</int>
+ <string key="IBDocument.SystemVersion">11B26</string>
+ <string key="IBDocument.InterfaceBuilderVersion">1617</string>
+ <string key="IBDocument.AppKitVersion">1138</string>
+ <string key="IBDocument.HIToolboxVersion">566.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">534</string>
+ </object>
+ <object class="NSArray" key="IBDocument.IntegratedClassDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>IBProxyObject</string>
+ <string>IBUIView</string>
+ <string>IBUILabel</string>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="dict.values" ref="0"/>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="372490531">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBProxyObject" id="843779117">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIView" id="774585933">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">274</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUILabel" id="1022931813">
+ <reference key="NSNextResponder" ref="774585933"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{50, 151}, {221, 21}}</string>
+ <reference key="NSSuperview" ref="774585933"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView"/>
+ <string key="NSReuseIdentifierKey">_NS:311</string>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Hit ⌘U to execute test cases</string>
+ <object class="NSFont" key="IBUIFont">
+ <string key="NSName">Helvetica</string>
+ <double key="NSSize">17</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <object class="NSColor" key="IBUITextColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MCAwIDAAA</bytes>
+ </object>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ </object>
+ </object>
+ <string key="NSFrame">{{0, 20}, {320, 460}}</string>
+ <reference key="NSSuperview"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="1022931813"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC43NQA</bytes>
+ <object class="NSColorSpace" key="NSCustomColorSpace">
+ <int key="NSID">2</int>
+ </object>
+ </object>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="774585933"/>
+ </object>
+ <int key="connectionID">7</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="372490531"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="843779117"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">6</int>
+ <reference key="object" ref="774585933"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1022931813"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">8</int>
+ <reference key="object" ref="1022931813"/>
+ <reference key="parent" ref="774585933"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-1.IBPluginDependency</string>
+ <string>-2.CustomClassName</string>
+ <string>-2.IBPluginDependency</string>
+ <string>6.IBPluginDependency</string>
+ <string>8.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>JTObjectMappingViewController</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>UIResponder</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <reference key="dict.values" ref="0"/>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <reference key="dict.values" ref="0"/>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">8</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">JTObjectMappingViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">./Classes/JTObjectMappingViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3100" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <string key="IBCocoaTouchPluginVersion">534</string>
+ </data>
+</archive>
444 JTObjectMapping/en.lproj/MainWindow.xib
@@ -0,0 +1,444 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1024</int>
+ <string key="IBDocument.SystemVersion">10D571</string>
+ <string key="IBDocument.InterfaceBuilderVersion">786</string>
+ <string key="IBDocument.AppKitVersion">1038.29</string>
+ <string key="IBDocument.HIToolboxVersion">460.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">112</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="10"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="841351856">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBProxyObject" id="427554174">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUICustomObject" id="664661524">
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIViewController" id="943309135">
+ <string key="IBUINibName">JTObjectMappingViewController</string>
+ <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
+ <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
+ <int key="interfaceOrientation">1</int>
+ </object>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <bool key="IBUIHorizontal">NO</bool>
+ </object>
+ <object class="IBUIWindow" id="117978783">
+ <nil key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrameSize">{320, 480}</string>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MSAxIDEAA</bytes>
+ </object>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <bool key="IBUIResizesToFullScreen">YES</bool>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="841351856"/>
+ <reference key="destination" ref="664661524"/>
+ </object>
+ <int key="connectionID">4</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">viewController</string>
+ <reference key="source" ref="664661524"/>
+ <reference key="destination" ref="943309135"/>
+ </object>
+ <int key="connectionID">11</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">window</string>
+ <reference key="source" ref="664661524"/>
+ <reference key="destination" ref="117978783"/>
+ </object>
+ <int key="connectionID">14</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="841351856"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">3</int>
+ <reference key="object" ref="664661524"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">JTObjectMapping App Delegate</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="427554174"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">10</int>
+ <reference key="object" ref="943309135"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">12</int>
+ <reference key="object" ref="117978783"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>10.CustomClassName</string>
+ <string>10.IBEditorWindowLastContentRect</string>
+ <string>10.IBPluginDependency</string>
+ <string>12.IBEditorWindowLastContentRect</string>
+ <string>12.IBPluginDependency</string>
+ <string>3.CustomClassName</string>
+ <string>3.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>UIApplication</string>
+ <string>UIResponder</string>
+ <string>JTObjectMappingViewController</string>
+ <string>{{234, 376}, {320, 480}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>{{525, 346}, {320, 480}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>JTObjectMappingAppDelegate</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">15</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIWindow</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBUserSource</string>
+ <string key="minorKey"/>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">JTObjectMappingAppDelegate</string>
+ <string key="superclassName">NSObject</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>viewController</string>
+ <string>window</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>JTObjectMappingViewController</string>
+ <string>UIWindow</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>viewController</string>
+ <string>window</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBToOneOutletInfo">
+ <string key="name">viewController</string>
+ <string key="candidateClassName">JTObjectMappingViewController</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">window</string>
+ <string key="candidateClassName">UIWindow</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">JTObjectMappingAppDelegate.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">JTObjectMappingAppDelegate</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBUserSource</string>
+ <string key="minorKey"/>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">JTObjectMappingViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">JTObjectMappingViewController.h</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="356479594">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIApplication</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIApplication.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIResponder</string>
+ <string key="superclassName">NSObject</string>
+ <reference key="sourceIdentifier" ref="356479594"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchBar</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UISearchDisplayController</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIView</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIViewController</string>
+ <string key="superclassName">UIResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">UIWindow</string>
+ <string key="superclassName">UIView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">UIKit.framework/Headers/UIWindow.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
+ <integer value="1024" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3100" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">JTObjectMapping.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <string key="IBCocoaTouchPluginVersion">112</string>
+ </data>
+</archive>
17 JTObjectMapping/main.m
@@ -0,0 +1,17 @@
+//
+// main.m
+// JTObjectMapping
+//
+// Created by james on 9/6/11.
+// Copyright 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+int main(int argc, char *argv[])
+{
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+ int retVal = UIApplicationMain(argc, argv, nil, nil);
+ [pool release];
+ return retVal;
+}
22 JTObjectMappingTests/JTObjectMappingTests-Info.plist
@@ -0,0 +1,22 @@
+<?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>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.stepcase.${PRODUCT_NAME:rfc1034identifier}</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>BNDL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+</dict>
+</plist>
19 JTObjectMappingTests/JTObjectMappingTests.h
@@ -0,0 +1,19 @@
+//
+// JTObjectMappingTests.h
+// JTObjectMappingTests
+//
+// Created by james on 9/6/11.
+// Copyright 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import <SenTestingKit/SenTestingKit.h>
+
+@class JTUserTest;
+
+@interface JTObjectMappingTests : SenTestCase
+
+@property (nonatomic, retain) NSDictionary *json;
+@property (nonatomic, retain) NSDictionary *mapping;
+@property (nonatomic, retain) JTUserTest *object;
+
+@end
87 JTObjectMappingTests/JTObjectMappingTests.m
@@ -0,0 +1,87 @@
+//
+// JTObjectMappingTests.m
+// JTObjectMappingTests
+//
+// Created by james on 9/6/11.
+// Copyright 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import "JTObjectMappingTests.h"
+#import "NSObject+JTObjectMapping.h"
+#import "JTUserTest.h"
+#import "JTSocialNetworkTest.h"
+#import "JTMappings.h"
+
+@implementation JTObjectMappingTests
+@synthesize json, mapping, object;
+
+
+- (void)setUp
+{
+ [super setUp];
+
+ // Set-up code here.
+ self.json = [NSDictionary dictionaryWithObjectsAndKeys:
+ @"Bob", @"p_name",
+ @"Manager", @"p_title",
+ [NSNumber numberWithInt:30], @"p_age",
+ [NSNull null], @"p_null", // Sometime [NSNull null] object would be returned from the JSON response
+ [NSDictionary dictionaryWithObjectsAndKeys:
+ @"@bob", @"twitter",
+ @"bob", @"facebook",
+ nil], @"social_networks",
+ nil];
+
+ self.mapping = [NSDictionary dictionaryWithObjectsAndKeys:
+ @"name", @"p_name",
+ @"title", @"p_title",
+ @"age", @"p_age",
+ @"null", @"p_null",
+ [JTMappings mappingWithKey:@"socialNetwork"
+ targetClass:[JTSocialNetworkTest class]
+ mapping:[NSDictionary dictionaryWithObjectsAndKeys:
+ @"twitterID", @"twitter",
+ @"facebookID", @"facebook",
+ nil]], @"social_networks",
+ nil];
+
+ self.object = [[[JTUserTest alloc] init] autorelease];
+ [self.object setValueFromDictionary:json mapping:mapping];
+}
+
+- (void)tearDown
+{
+ // Tear-down code here.
+
+ self.json = nil;
+ self.mapping = nil;
+ self.object = nil;
+
+ [super tearDown];
+}
+
+- (void)testTitle {
+ STAssertTrue([self.object.title isEqual:@"Manager"], @"title = %@ fails to equal %@", self.object.title, @"Manager");
+}
+
+- (void)testName {
+ STAssertTrue([self.object.name isEqual:@"Bob"], @"name = %@ fails to equal %@", self.object.name, @"Bob");
+}
+
+- (void)testAge {
+ STAssertTrue([self.object.age isEqualToNumber:[NSNumber numberWithInt:30]], @"age = %@ fails to equal %@", self.object.age, [NSNumber numberWithInt:30]);
+}
+
+- (void)testSocialTwitter {
+ STAssertTrue([self.object.socialNetwork.twitterID isEqual:@"@bob"], @"twitterID = %@ fails to equal %@", self.object.socialNetwork.twitterID, @"@bob");
+}
+
+- (void)testSocialFacebook {
+ STAssertTrue([self.object.socialNetwork.facebookID isEqual:@"bob"], @"facebookID = %@ fails to equal %@", self.object.socialNetwork.facebookID, @"bob");
+}
+
+- (void)testNull {
+ STAssertNil(self.object.null, @"null should be mapped to nil", nil);
+}
+
+@end
16 JTObjectMappingTests/JTSocialNetworkTest.h
@@ -0,0 +1,16 @@
+//
+// JTSocialNetworkTest.h
+// JTObjectMapping
+//
+// Created by james on 9/6/11.
+// Copyright 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@interface JTSocialNetworkTest : NSObject
+
+@property (nonatomic, copy) NSString *twitterID;
+@property (nonatomic, copy) NSString *facebookID;
+
+@end
14 JTObjectMappingTests/JTSocialNetworkTest.m
@@ -0,0 +1,14 @@
+//
+// JTSocialNetworkTest.m
+// JTObjectMapping
+//
+// Created by james on 9/6/11.
+// Copyright 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import "JTSocialNetworkTest.h"
+
+@implementation JTSocialNetworkTest
+@synthesize twitterID, facebookID;
+
+@end
21 JTObjectMappingTests/JTUserTest.h
@@ -0,0 +1,21 @@
+//
+// JTUserTest.h
+// JTObjectMapping
+//
+// Created by james on 9/6/11.
+// Copyright 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@class JTSocialNetworkTest;
+
+@interface JTUserTest : NSObject
+
+@property (nonatomic, copy) NSString *name;
+@property (nonatomic, copy) NSString *title;
+@property (nonatomic, copy) NSNumber *age;
+@property (nonatomic, copy) NSString *null;
+@property (nonatomic, retain) JTSocialNetworkTest *socialNetwork;
+
+@end
15 JTObjectMappingTests/JTUserTest.m
@@ -0,0 +1,15 @@
+//
+// JTUserTest.m
+// JTObjectMapping
+//
+// Created by james on 9/6/11.
+// Copyright 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import "JTUserTest.h"
+
+@implementation JTUserTest
+@synthesize name, title, age, null;
+@synthesize socialNetwork;
+
+@end
2 JTObjectMappingTests/en.lproj/InfoPlist.strings
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+

0 comments on commit 3aff0c1

Please sign in to comment.
Something went wrong with that request. Please try again.