Skip to content

Commit 28bfd6e

Browse files
committed
mild improvements fo chapter 11 examples
1 parent 692f73d commit 28bfd6e

File tree

10 files changed

+474
-12
lines changed

10 files changed

+474
-12
lines changed
Lines changed: 302 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,302 @@
1+
// !$*UTF8*$!
2+
{
3+
archiveVersion = 1;
4+
classes = {
5+
};
6+
objectVersion = 46;
7+
objects = {
8+
9+
/* Begin PBXBuildFile section */
10+
810C08851D37F0BC00B058FD /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 810C08841D37F0BC00B058FD /* AppDelegate.swift */; };
11+
810C08871D37F0BC00B058FD /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 810C08861D37F0BC00B058FD /* ViewController.swift */; };
12+
810C088A1D37F0BC00B058FD /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 810C08881D37F0BC00B058FD /* Main.storyboard */; };
13+
810C088C1D37F0BC00B058FD /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 810C088B1D37F0BC00B058FD /* Assets.xcassets */; };
14+
810C088F1D37F0BC00B058FD /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 810C088D1D37F0BC00B058FD /* LaunchScreen.storyboard */; };
15+
/* End PBXBuildFile section */
16+
17+
/* Begin PBXFileReference section */
18+
810C08811D37F0BC00B058FD /* Timer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Timer.app; sourceTree = BUILT_PRODUCTS_DIR; };
19+
810C08841D37F0BC00B058FD /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
20+
810C08861D37F0BC00B058FD /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
21+
810C08891D37F0BC00B058FD /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
22+
810C088B1D37F0BC00B058FD /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
23+
810C088E1D37F0BC00B058FD /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
24+
810C08901D37F0BC00B058FD /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
25+
/* End PBXFileReference section */
26+
27+
/* Begin PBXFrameworksBuildPhase section */
28+
810C087E1D37F0BC00B058FD /* Frameworks */ = {
29+
isa = PBXFrameworksBuildPhase;
30+
buildActionMask = 2147483647;
31+
files = (
32+
);
33+
runOnlyForDeploymentPostprocessing = 0;
34+
};
35+
/* End PBXFrameworksBuildPhase section */
36+
37+
/* Begin PBXGroup section */
38+
810C08781D37F0BC00B058FD = {
39+
isa = PBXGroup;
40+
children = (
41+
810C08831D37F0BC00B058FD /* Timer */,
42+
810C08821D37F0BC00B058FD /* Products */,
43+
);
44+
sourceTree = "<group>";
45+
};
46+
810C08821D37F0BC00B058FD /* Products */ = {
47+
isa = PBXGroup;
48+
children = (
49+
810C08811D37F0BC00B058FD /* Timer.app */,
50+
);
51+
name = Products;
52+
sourceTree = "<group>";
53+
};
54+
810C08831D37F0BC00B058FD /* Timer */ = {
55+
isa = PBXGroup;
56+
children = (
57+
810C08841D37F0BC00B058FD /* AppDelegate.swift */,
58+
810C08861D37F0BC00B058FD /* ViewController.swift */,
59+
810C08881D37F0BC00B058FD /* Main.storyboard */,
60+
810C088B1D37F0BC00B058FD /* Assets.xcassets */,
61+
810C088D1D37F0BC00B058FD /* LaunchScreen.storyboard */,
62+
810C08901D37F0BC00B058FD /* Info.plist */,
63+
);
64+
path = Timer;
65+
sourceTree = "<group>";
66+
};
67+
/* End PBXGroup section */
68+
69+
/* Begin PBXNativeTarget section */
70+
810C08801D37F0BC00B058FD /* Timer */ = {
71+
isa = PBXNativeTarget;
72+
buildConfigurationList = 810C08931D37F0BC00B058FD /* Build configuration list for PBXNativeTarget "Timer" */;
73+
buildPhases = (
74+
810C087D1D37F0BC00B058FD /* Sources */,
75+
810C087E1D37F0BC00B058FD /* Frameworks */,
76+
810C087F1D37F0BC00B058FD /* Resources */,
77+
);
78+
buildRules = (
79+
);
80+
dependencies = (
81+
);
82+
name = Timer;
83+
productName = Timer;
84+
productReference = 810C08811D37F0BC00B058FD /* Timer.app */;
85+
productType = "com.apple.product-type.application";
86+
};
87+
/* End PBXNativeTarget section */
88+
89+
/* Begin PBXProject section */
90+
810C08791D37F0BC00B058FD /* Project object */ = {
91+
isa = PBXProject;
92+
attributes = {
93+
LastSwiftUpdateCheck = 0800;
94+
LastUpgradeCheck = 0800;
95+
ORGANIZATIONNAME = "Mattt Neuburg";
96+
TargetAttributes = {
97+
810C08801D37F0BC00B058FD = {
98+
CreatedOnToolsVersion = 8.0;
99+
DevelopmentTeam = W3LHX5RGV2;
100+
DevelopmentTeamName = "Matt Neuburg";
101+
ProvisioningStyle = Automatic;
102+
};
103+
};
104+
};
105+
buildConfigurationList = 810C087C1D37F0BC00B058FD /* Build configuration list for PBXProject "Timer" */;
106+
compatibilityVersion = "Xcode 3.2";
107+
developmentRegion = English;
108+
hasScannedForEncodings = 0;
109+
knownRegions = (
110+
en,
111+
Base,
112+
);
113+
mainGroup = 810C08781D37F0BC00B058FD;
114+
productRefGroup = 810C08821D37F0BC00B058FD /* Products */;
115+
projectDirPath = "";
116+
projectRoot = "";
117+
targets = (
118+
810C08801D37F0BC00B058FD /* Timer */,
119+
);
120+
};
121+
/* End PBXProject section */
122+
123+
/* Begin PBXResourcesBuildPhase section */
124+
810C087F1D37F0BC00B058FD /* Resources */ = {
125+
isa = PBXResourcesBuildPhase;
126+
buildActionMask = 2147483647;
127+
files = (
128+
810C088F1D37F0BC00B058FD /* LaunchScreen.storyboard in Resources */,
129+
810C088C1D37F0BC00B058FD /* Assets.xcassets in Resources */,
130+
810C088A1D37F0BC00B058FD /* Main.storyboard in Resources */,
131+
);
132+
runOnlyForDeploymentPostprocessing = 0;
133+
};
134+
/* End PBXResourcesBuildPhase section */
135+
136+
/* Begin PBXSourcesBuildPhase section */
137+
810C087D1D37F0BC00B058FD /* Sources */ = {
138+
isa = PBXSourcesBuildPhase;
139+
buildActionMask = 2147483647;
140+
files = (
141+
810C08871D37F0BC00B058FD /* ViewController.swift in Sources */,
142+
810C08851D37F0BC00B058FD /* AppDelegate.swift in Sources */,
143+
);
144+
runOnlyForDeploymentPostprocessing = 0;
145+
};
146+
/* End PBXSourcesBuildPhase section */
147+
148+
/* Begin PBXVariantGroup section */
149+
810C08881D37F0BC00B058FD /* Main.storyboard */ = {
150+
isa = PBXVariantGroup;
151+
children = (
152+
810C08891D37F0BC00B058FD /* Base */,
153+
);
154+
name = Main.storyboard;
155+
sourceTree = "<group>";
156+
};
157+
810C088D1D37F0BC00B058FD /* LaunchScreen.storyboard */ = {
158+
isa = PBXVariantGroup;
159+
children = (
160+
810C088E1D37F0BC00B058FD /* Base */,
161+
);
162+
name = LaunchScreen.storyboard;
163+
sourceTree = "<group>";
164+
};
165+
/* End PBXVariantGroup section */
166+
167+
/* Begin XCBuildConfiguration section */
168+
810C08911D37F0BC00B058FD /* Debug */ = {
169+
isa = XCBuildConfiguration;
170+
buildSettings = {
171+
ALWAYS_SEARCH_USER_PATHS = NO;
172+
CLANG_ANALYZER_NONNULL = YES;
173+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
174+
CLANG_CXX_LIBRARY = "libc++";
175+
CLANG_ENABLE_MODULES = YES;
176+
CLANG_ENABLE_OBJC_ARC = YES;
177+
CLANG_WARN_BOOL_CONVERSION = YES;
178+
CLANG_WARN_CONSTANT_CONVERSION = YES;
179+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
180+
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
181+
CLANG_WARN_EMPTY_BODY = YES;
182+
CLANG_WARN_ENUM_CONVERSION = YES;
183+
CLANG_WARN_INT_CONVERSION = YES;
184+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
185+
CLANG_WARN_UNREACHABLE_CODE = YES;
186+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
187+
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
188+
COPY_PHASE_STRIP = NO;
189+
DEBUG_INFORMATION_FORMAT = dwarf;
190+
ENABLE_STRICT_OBJC_MSGSEND = YES;
191+
ENABLE_TESTABILITY = YES;
192+
GCC_C_LANGUAGE_STANDARD = gnu99;
193+
GCC_DYNAMIC_NO_PIC = NO;
194+
GCC_NO_COMMON_BLOCKS = YES;
195+
GCC_OPTIMIZATION_LEVEL = 0;
196+
GCC_PREPROCESSOR_DEFINITIONS = (
197+
"DEBUG=1",
198+
"$(inherited)",
199+
);
200+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
201+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
202+
GCC_WARN_UNDECLARED_SELECTOR = YES;
203+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
204+
GCC_WARN_UNUSED_FUNCTION = YES;
205+
GCC_WARN_UNUSED_VARIABLE = YES;
206+
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
207+
MTL_ENABLE_DEBUG_INFO = YES;
208+
ONLY_ACTIVE_ARCH = YES;
209+
SDKROOT = iphoneos;
210+
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
211+
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
212+
};
213+
name = Debug;
214+
};
215+
810C08921D37F0BC00B058FD /* Release */ = {
216+
isa = XCBuildConfiguration;
217+
buildSettings = {
218+
ALWAYS_SEARCH_USER_PATHS = NO;
219+
CLANG_ANALYZER_NONNULL = YES;
220+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
221+
CLANG_CXX_LIBRARY = "libc++";
222+
CLANG_ENABLE_MODULES = YES;
223+
CLANG_ENABLE_OBJC_ARC = YES;
224+
CLANG_WARN_BOOL_CONVERSION = YES;
225+
CLANG_WARN_CONSTANT_CONVERSION = YES;
226+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
227+
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
228+
CLANG_WARN_EMPTY_BODY = YES;
229+
CLANG_WARN_ENUM_CONVERSION = YES;
230+
CLANG_WARN_INT_CONVERSION = YES;
231+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
232+
CLANG_WARN_UNREACHABLE_CODE = YES;
233+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
234+
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
235+
COPY_PHASE_STRIP = NO;
236+
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
237+
ENABLE_NS_ASSERTIONS = NO;
238+
ENABLE_STRICT_OBJC_MSGSEND = YES;
239+
GCC_C_LANGUAGE_STANDARD = gnu99;
240+
GCC_NO_COMMON_BLOCKS = YES;
241+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
242+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
243+
GCC_WARN_UNDECLARED_SELECTOR = YES;
244+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
245+
GCC_WARN_UNUSED_FUNCTION = YES;
246+
GCC_WARN_UNUSED_VARIABLE = YES;
247+
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
248+
MTL_ENABLE_DEBUG_INFO = NO;
249+
SDKROOT = iphoneos;
250+
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
251+
VALIDATE_PRODUCT = YES;
252+
};
253+
name = Release;
254+
};
255+
810C08941D37F0BC00B058FD /* Debug */ = {
256+
isa = XCBuildConfiguration;
257+
buildSettings = {
258+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
259+
INFOPLIST_FILE = Timer/Info.plist;
260+
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
261+
PRODUCT_BUNDLE_IDENTIFIER = com.neuburg.matt.Timer;
262+
PRODUCT_NAME = "$(TARGET_NAME)";
263+
SWIFT_VERSION = 3.0;
264+
};
265+
name = Debug;
266+
};
267+
810C08951D37F0BC00B058FD /* Release */ = {
268+
isa = XCBuildConfiguration;
269+
buildSettings = {
270+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
271+
INFOPLIST_FILE = Timer/Info.plist;
272+
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
273+
PRODUCT_BUNDLE_IDENTIFIER = com.neuburg.matt.Timer;
274+
PRODUCT_NAME = "$(TARGET_NAME)";
275+
SWIFT_VERSION = 3.0;
276+
};
277+
name = Release;
278+
};
279+
/* End XCBuildConfiguration section */
280+
281+
/* Begin XCConfigurationList section */
282+
810C087C1D37F0BC00B058FD /* Build configuration list for PBXProject "Timer" */ = {
283+
isa = XCConfigurationList;
284+
buildConfigurations = (
285+
810C08911D37F0BC00B058FD /* Debug */,
286+
810C08921D37F0BC00B058FD /* Release */,
287+
);
288+
defaultConfigurationIsVisible = 0;
289+
defaultConfigurationName = Release;
290+
};
291+
810C08931D37F0BC00B058FD /* Build configuration list for PBXNativeTarget "Timer" */ = {
292+
isa = XCConfigurationList;
293+
buildConfigurations = (
294+
810C08941D37F0BC00B058FD /* Debug */,
295+
810C08951D37F0BC00B058FD /* Release */,
296+
);
297+
defaultConfigurationIsVisible = 0;
298+
};
299+
/* End XCConfigurationList section */
300+
};
301+
rootObject = 810C08791D37F0BC00B058FD /* Project object */;
302+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
2+
import UIKit
3+
4+
@UIApplicationMain
5+
class AppDelegate: UIResponder, UIApplicationDelegate {
6+
7+
var window: UIWindow?
8+
9+
10+
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
11+
// Override point for customization after application launch.
12+
return true
13+
}
14+
15+
16+
17+
}
18+
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"images" : [
3+
{
4+
"idiom" : "iphone",
5+
"size" : "29x29",
6+
"scale" : "2x"
7+
},
8+
{
9+
"idiom" : "iphone",
10+
"size" : "29x29",
11+
"scale" : "3x"
12+
},
13+
{
14+
"idiom" : "iphone",
15+
"size" : "40x40",
16+
"scale" : "2x"
17+
},
18+
{
19+
"idiom" : "iphone",
20+
"size" : "40x40",
21+
"scale" : "3x"
22+
},
23+
{
24+
"idiom" : "iphone",
25+
"size" : "60x60",
26+
"scale" : "2x"
27+
},
28+
{
29+
"idiom" : "iphone",
30+
"size" : "60x60",
31+
"scale" : "3x"
32+
}
33+
],
34+
"info" : {
35+
"version" : 1,
36+
"author" : "xcode"
37+
}
38+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2+
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11134" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
3+
<dependencies>
4+
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11106"/>
5+
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
6+
</dependencies>
7+
<scenes>
8+
<!--View Controller-->
9+
<scene sceneID="EHf-IW-A2E">
10+
<objects>
11+
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
12+
<layoutGuides>
13+
<viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/>
14+
<viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
15+
</layoutGuides>
16+
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
17+
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
18+
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
19+
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
20+
</view>
21+
</viewController>
22+
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
23+
</objects>
24+
<point key="canvasLocation" x="53" y="375"/>
25+
</scene>
26+
</scenes>
27+
</document>

0 commit comments

Comments
 (0)