Skip to content
This repository was archived by the owner on Jul 1, 2020. It is now read-only.

Commit ddbac65

Browse files
Merge pull request #16 from LeoMobileDeveloper/Swift4.0
Migrate to swift4
2 parents 3803ec5 + 6719971 commit ddbac65

12 files changed

Lines changed: 62 additions & 26 deletions

File tree

Demo/Demo.xcodeproj/project.pbxproj

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
/* Begin PBXBuildFile section */
1010
B3B5411D1F061C4500408912 /* PullToRefreshKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3B5411C1F061C3800408912 /* PullToRefreshKit.framework */; };
11-
B3B5411E1F061E4300408912 /* PullToRefreshKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3B5411C1F061C3800408912 /* PullToRefreshKit.framework */; };
1211
B3B5411F1F061E4300408912 /* PullToRefreshKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B3B5411C1F061C3800408912 /* PullToRefreshKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
1312
B3B543D91F062A9700408912 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3B542FB1F062A9700408912 /* AppDelegate.swift */; };
1413
B3B543DA1F062A9700408912 /* arrow_down@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B3B542FC1F062A9700408912 /* arrow_down@3x.png */; };
@@ -143,7 +142,6 @@
143142
buildActionMask = 2147483647;
144143
files = (
145144
B3B5411D1F061C4500408912 /* PullToRefreshKit.framework in Frameworks */,
146-
B3B5411E1F061E4300408912 /* PullToRefreshKit.framework in Frameworks */,
147145
);
148146
runOnlyForDeploymentPostprocessing = 0;
149147
};
@@ -274,13 +272,13 @@
274272
isa = PBXProject;
275273
attributes = {
276274
LastSwiftUpdateCheck = 0730;
277-
LastUpgradeCheck = 0800;
275+
LastUpgradeCheck = 0900;
278276
ORGANIZATIONNAME = Leo;
279277
TargetAttributes = {
280278
52E8FB3B1D336E26000D0BF1 = {
281279
CreatedOnToolsVersion = 7.3.1;
282280
DevelopmentTeam = R7X999328A;
283-
LastSwiftMigration = 0800;
281+
LastSwiftMigration = 0900;
284282
};
285283
};
286284
};
@@ -437,14 +435,20 @@
437435
CLANG_CXX_LIBRARY = "libc++";
438436
CLANG_ENABLE_MODULES = YES;
439437
CLANG_ENABLE_OBJC_ARC = YES;
438+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
440439
CLANG_WARN_BOOL_CONVERSION = YES;
440+
CLANG_WARN_COMMA = YES;
441441
CLANG_WARN_CONSTANT_CONVERSION = YES;
442442
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
443443
CLANG_WARN_EMPTY_BODY = YES;
444444
CLANG_WARN_ENUM_CONVERSION = YES;
445445
CLANG_WARN_INFINITE_RECURSION = YES;
446446
CLANG_WARN_INT_CONVERSION = YES;
447+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
448+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
447449
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
450+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
451+
CLANG_WARN_STRICT_PROTOTYPES = YES;
448452
CLANG_WARN_SUSPICIOUS_MOVE = YES;
449453
CLANG_WARN_UNREACHABLE_CODE = YES;
450454
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -467,7 +471,7 @@
467471
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
468472
GCC_WARN_UNUSED_FUNCTION = YES;
469473
GCC_WARN_UNUSED_VARIABLE = YES;
470-
IPHONEOS_DEPLOYMENT_TARGET = 9.3;
474+
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
471475
MTL_ENABLE_DEBUG_INFO = YES;
472476
ONLY_ACTIVE_ARCH = YES;
473477
SDKROOT = iphoneos;
@@ -486,14 +490,20 @@
486490
CLANG_CXX_LIBRARY = "libc++";
487491
CLANG_ENABLE_MODULES = YES;
488492
CLANG_ENABLE_OBJC_ARC = YES;
493+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
489494
CLANG_WARN_BOOL_CONVERSION = YES;
495+
CLANG_WARN_COMMA = YES;
490496
CLANG_WARN_CONSTANT_CONVERSION = YES;
491497
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
492498
CLANG_WARN_EMPTY_BODY = YES;
493499
CLANG_WARN_ENUM_CONVERSION = YES;
494500
CLANG_WARN_INFINITE_RECURSION = YES;
495501
CLANG_WARN_INT_CONVERSION = YES;
502+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
503+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
496504
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
505+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
506+
CLANG_WARN_STRICT_PROTOTYPES = YES;
497507
CLANG_WARN_SUSPICIOUS_MOVE = YES;
498508
CLANG_WARN_UNREACHABLE_CODE = YES;
499509
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -510,7 +520,7 @@
510520
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
511521
GCC_WARN_UNUSED_FUNCTION = YES;
512522
GCC_WARN_UNUSED_VARIABLE = YES;
513-
IPHONEOS_DEPLOYMENT_TARGET = 9.3;
523+
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
514524
MTL_ENABLE_DEBUG_INFO = NO;
515525
SDKROOT = iphoneos;
516526
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
@@ -530,7 +540,8 @@
530540
PRODUCT_BUNDLE_IDENTIFIER = Leo.PullToRefreshKitd;
531541
PRODUCT_MODULE_NAME = Demo;
532542
PRODUCT_NAME = Demo;
533-
SWIFT_VERSION = 3.0;
543+
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
544+
SWIFT_VERSION = 4.0;
534545
};
535546
name = Debug;
536547
};
@@ -545,7 +556,8 @@
545556
PRODUCT_BUNDLE_IDENTIFIER = Leo.PullToRefreshKitd;
546557
PRODUCT_MODULE_NAME = Demo;
547558
PRODUCT_NAME = Demo;
548-
SWIFT_VERSION = 3.0;
559+
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
560+
SWIFT_VERSION = 4.0;
549561
};
550562
name = Release;
551563
};

Demo/Demo/MainViewController.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ class MainViewController: UITableViewController {
4545
header.setThemeColor(themeColor: UIColor.blue)
4646
}
4747
self.tableView.tableFooterView = UIView(frame: CGRect.zero)
48+
if #available(iOS 11.0, *) {
49+
self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentBehavior.never
50+
} else {
51+
}
4852
}
4953

5054
override func numberOfSections(in tableView: UITableView) -> Int {

Demo/Demo/YahooWeatherRefreshHeader.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class YahooWeatherRefreshHeader: UIView,RefreshableHeader{
5454
imageView.startAnimating()
5555
self.perform(#selector(YahooWeatherRefreshHeader.transitionFinihsed), with: nil, afterDelay: imageView.animationDuration)
5656
}
57-
func transitionFinihsed(){
57+
@objc func transitionFinihsed(){
5858
imageView.stopAnimating()
5959
let images = (73...109).map({return $0 < 100 ? "sun_000\($0)" : "sun_00\($0)"}).map({UIImage(named:$0)!})
6060
imageView.animationImages = images

Demo/Demo/YoukuTableViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class YoukuTableViewController:BaseTableViewController{
3535
sw.addTarget(self, action: #selector(YoukuTableViewController.switchValueChanged(_:)), for: UIControlEvents.valueChanged)
3636
self.navigationItem.rightBarButtonItem = rightItem
3737
}
38-
func switchValueChanged(_ sender:UISwitch){
38+
@objc func switchValueChanged(_ sender:UISwitch){
3939
refreshHeader?.backgroundImageView.isHidden = !sender.isOn
4040
}
4141
}

PullToRefreshKit.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
Pod::Spec.new do |s|
1010
s.name = 'PullToRefreshKit'
11-
s.version = '0.6.0'
11+
s.version = '0.7.0'
1212
s.summary = 'A refresh library written with pure Swift 3'
1313
s.description = <<-DESC
1414
This is a pull to refresh library written by pure Swift 3. Using it you can add pull to refresh,pull to load more,pull left/right to view details within one line. Besides,it is quite easy to write a custom refresh view when using this lib.

PullToRefreshKit.xcodeproj/project.pbxproj

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -158,12 +158,13 @@
158158
B3B540BF1F061B8300408912 /* Project object */ = {
159159
isa = PBXProject;
160160
attributes = {
161-
LastUpgradeCheck = 0830;
161+
LastUpgradeCheck = 0900;
162162
ORGANIZATIONNAME = "Leo Huang";
163163
TargetAttributes = {
164164
B3B540C71F061B8300408912 = {
165165
CreatedOnToolsVersion = 8.3;
166166
DevelopmentTeam = R7X999328A;
167+
LastSwiftMigration = 0900;
167168
ProvisioningStyle = Automatic;
168169
};
169170
};
@@ -239,21 +240,28 @@
239240
isa = XCBuildConfiguration;
240241
buildSettings = {
241242
ALWAYS_SEARCH_USER_PATHS = NO;
243+
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
242244
CLANG_ANALYZER_NONNULL = YES;
243245
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
244246
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
245247
CLANG_CXX_LIBRARY = "libc++";
246248
CLANG_ENABLE_MODULES = YES;
247249
CLANG_ENABLE_OBJC_ARC = YES;
250+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
248251
CLANG_WARN_BOOL_CONVERSION = YES;
252+
CLANG_WARN_COMMA = YES;
249253
CLANG_WARN_CONSTANT_CONVERSION = YES;
250254
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
251255
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
252256
CLANG_WARN_EMPTY_BODY = YES;
253257
CLANG_WARN_ENUM_CONVERSION = YES;
254258
CLANG_WARN_INFINITE_RECURSION = YES;
255259
CLANG_WARN_INT_CONVERSION = YES;
260+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
261+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
256262
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
263+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
264+
CLANG_WARN_STRICT_PROTOTYPES = YES;
257265
CLANG_WARN_SUSPICIOUS_MOVE = YES;
258266
CLANG_WARN_UNREACHABLE_CODE = YES;
259267
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -277,7 +285,7 @@
277285
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
278286
GCC_WARN_UNUSED_FUNCTION = YES;
279287
GCC_WARN_UNUSED_VARIABLE = YES;
280-
IPHONEOS_DEPLOYMENT_TARGET = 10.3;
288+
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
281289
MTL_ENABLE_DEBUG_INFO = YES;
282290
ONLY_ACTIVE_ARCH = YES;
283291
SDKROOT = iphoneos;
@@ -293,21 +301,28 @@
293301
isa = XCBuildConfiguration;
294302
buildSettings = {
295303
ALWAYS_SEARCH_USER_PATHS = NO;
304+
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
296305
CLANG_ANALYZER_NONNULL = YES;
297306
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
298307
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
299308
CLANG_CXX_LIBRARY = "libc++";
300309
CLANG_ENABLE_MODULES = YES;
301310
CLANG_ENABLE_OBJC_ARC = YES;
311+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
302312
CLANG_WARN_BOOL_CONVERSION = YES;
313+
CLANG_WARN_COMMA = YES;
303314
CLANG_WARN_CONSTANT_CONVERSION = YES;
304315
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
305316
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
306317
CLANG_WARN_EMPTY_BODY = YES;
307318
CLANG_WARN_ENUM_CONVERSION = YES;
308319
CLANG_WARN_INFINITE_RECURSION = YES;
309320
CLANG_WARN_INT_CONVERSION = YES;
321+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
322+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
310323
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
324+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
325+
CLANG_WARN_STRICT_PROTOTYPES = YES;
311326
CLANG_WARN_SUSPICIOUS_MOVE = YES;
312327
CLANG_WARN_UNREACHABLE_CODE = YES;
313328
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -325,7 +340,7 @@
325340
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
326341
GCC_WARN_UNUSED_FUNCTION = YES;
327342
GCC_WARN_UNUSED_VARIABLE = YES;
328-
IPHONEOS_DEPLOYMENT_TARGET = 10.3;
343+
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
329344
MTL_ENABLE_DEBUG_INFO = NO;
330345
SDKROOT = iphoneos;
331346
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
@@ -352,7 +367,8 @@
352367
PRODUCT_BUNDLE_IDENTIFIER = "Leo-Huang.PullToRefreshKit";
353368
PRODUCT_NAME = "$(TARGET_NAME)";
354369
SKIP_INSTALL = YES;
355-
SWIFT_VERSION = 3.0;
370+
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
371+
SWIFT_VERSION = 4.0;
356372
};
357373
name = Debug;
358374
};
@@ -372,7 +388,8 @@
372388
PRODUCT_BUNDLE_IDENTIFIER = "Leo-Huang.PullToRefreshKit";
373389
PRODUCT_NAME = "$(TARGET_NAME)";
374390
SKIP_INSTALL = YES;
375-
SWIFT_VERSION = 3.0;
391+
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
392+
SWIFT_VERSION = 4.0;
376393
};
377394
name = Release;
378395
};

PullToRefreshKit.xcodeproj/xcshareddata/xcschemes/PullToRefreshKit.xcscheme

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "0830"
3+
LastUpgradeVersion = "0900"
44
version = "1.3">
55
<BuildAction
66
parallelizeBuildables = "YES"
@@ -26,6 +26,7 @@
2626
buildConfiguration = "Debug"
2727
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
2828
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29+
language = ""
2930
shouldUseLaunchSchemeArgsEnv = "YES">
3031
<Testables>
3132
</Testables>
@@ -36,6 +37,7 @@
3637
buildConfiguration = "Debug"
3738
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
3839
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
40+
language = ""
3941
launchStyle = "0"
4042
useCustomWorkingDirectory = "NO"
4143
ignoresPersistentStateOnLaunch = "NO"

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@
4949
## Require
5050

5151
- iOS 8
52-
- Swift 3.0
52+
- Swift 4.0
5353

54-
For Swift 2.3, See branch [Swift2](https://github.com/LeoMobileDeveloper/PullToRefreshKit/tree/Swift2)
54+
For Swift 3, See branch [Swift3](https://github.com/LeoMobileDeveloper/PullToRefreshKit/tree/Swift3)
5555

5656
## Support
5757

Source/Classes/Footer.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ open class DefaultRefreshFooter:UIView, RefreshableFooter, Tintable{
100100
public required init?(coder aDecoder: NSCoder) {
101101
fatalError("init(coder:) has not been implemented")
102102
}
103-
func catchTap(_ tap:UITapGestureRecognizer){
103+
@objc func catchTap(_ tap:UITapGestureRecognizer){
104104
let scrollView = self.superview?.superview as? UIScrollView
105105
scrollView?.beginFooterRefreshing()
106106
}

Source/Classes/Header.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ open class RefreshHeaderContainer:UIView{
318318
}
319319
}
320320
}
321-
func updateStateToIdea(){
321+
@objc func updateStateToIdea(){
322322
self.state = .idle
323323
clearTimer()
324324
}

0 commit comments

Comments
 (0)