diff --git a/PyConJP.xcodeproj/project.pbxproj b/PyConJP.xcodeproj/project.pbxproj index 0e65d88..cc5aa99 100644 --- a/PyConJP.xcodeproj/project.pbxproj +++ b/PyConJP.xcodeproj/project.pbxproj @@ -1053,34 +1053,36 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0810; - LastUpgradeCheck = 0810; + LastUpgradeCheck = 0900; ORGANIZATIONNAME = "PyCon JP"; TargetAttributes = { DB77FD491E06720C00504869 = { CreatedOnToolsVersion = 8.1; + LastSwiftMigration = 0900; ProvisioningStyle = Automatic; }; DB77FD511E06720D00504869 = { CreatedOnToolsVersion = 8.1; + LastSwiftMigration = 0900; ProvisioningStyle = Automatic; TestTargetID = DBA1C0A81C7228E2004F0C8D; }; DBA1C0A81C7228E2004F0C8D = { CreatedOnToolsVersion = 7.2; DevelopmentTeam = KP7AT73S3W; - LastSwiftMigration = 0800; + LastSwiftMigration = 0900; ProvisioningStyle = Automatic; }; DBA1C0BC1C7228E2004F0C8D = { CreatedOnToolsVersion = 7.2; DevelopmentTeam = 3T8B5JQDB8; - LastSwiftMigration = 0800; + LastSwiftMigration = 0900; TestTargetID = DBA1C0A81C7228E2004F0C8D; }; DBA1C0C71C7228E2004F0C8D = { CreatedOnToolsVersion = 7.2; DevelopmentTeam = 3T8B5JQDB8; - LastSwiftMigration = 0800; + LastSwiftMigration = 0900; TestTargetID = DBA1C0A81C7228E2004F0C8D; }; }; @@ -1526,7 +1528,8 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -1558,7 +1561,8 @@ PRODUCT_BUNDLE_IDENTIFIER = jp.pycon.WebAPIFramework; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -1577,7 +1581,8 @@ PRODUCT_BUNDLE_IDENTIFIER = jp.pycon.WebAPIFrameworkTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/PyConJP.app/PyConJP"; }; name = Debug; @@ -1594,7 +1599,8 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = jp.pycon.WebAPIFrameworkTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/PyConJP.app/PyConJP"; }; name = Release; @@ -1608,14 +1614,20 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -1656,14 +1668,20 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -1708,7 +1726,8 @@ PRODUCT_BUNDLE_IDENTIFIER = jp.pycon.pyconjp; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = 1; }; name = Debug; @@ -1732,7 +1751,8 @@ PRODUCT_BUNDLE_IDENTIFIER = jp.pycon.pyconjp; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = 1; }; name = Release; @@ -1751,7 +1771,8 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = yutaro.PyConJPTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/PyConJP.app/PyConJP"; }; name = Debug; @@ -1770,7 +1791,8 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = yutaro.PyConJPTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/PyConJP.app/PyConJP"; }; name = Release; @@ -1789,7 +1811,8 @@ PRODUCT_BUNDLE_IDENTIFIER = yutaro.PyConJPUITests; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; TEST_TARGET_NAME = PyConJP; USES_XCTRUNNER = YES; }; @@ -1809,7 +1832,8 @@ PRODUCT_BUNDLE_IDENTIFIER = yutaro.PyConJPUITests; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; TEST_TARGET_NAME = PyConJP; USES_XCTRUNNER = YES; }; diff --git a/PyConJP.xcodeproj/xcshareddata/xcschemes/PyConJP.xcscheme b/PyConJP.xcodeproj/xcshareddata/xcschemes/PyConJP.xcscheme index b31e864..8fde488 100644 --- a/PyConJP.xcodeproj/xcshareddata/xcschemes/PyConJP.xcscheme +++ b/PyConJP.xcodeproj/xcshareddata/xcschemes/PyConJP.xcscheme @@ -1,6 +1,6 @@ > 16) / 255.0 let g = CGFloat((color & 0x00FF00) >> 8) / 255.0 let b = CGFloat(color & 0x0000FF) / 255.0 - return UIColor(red:r, green:g, blue:b, alpha:alpha) + return UIColor(red: r, green: g, blue: b, alpha: alpha) } else { print("invalid hex string") return UIColor.white diff --git a/PyConJP/Extension/UIViewExtension.swift b/PyConJP/Extension/UIViewExtension.swift index eaa6748..b04bdf9 100644 --- a/PyConJP/Extension/UIViewExtension.swift +++ b/PyConJP/Extension/UIViewExtension.swift @@ -10,7 +10,7 @@ import UIKit extension UIViewController { - func topMostViewController() -> UIViewController { + @objc func topMostViewController() -> UIViewController { if let presentedViewController = self.presentedViewController { return presentedViewController.topMostViewController() } else { diff --git a/PyConJP/Model/Class/TalkObject.swift b/PyConJP/Model/Class/TalkObject.swift index c9499e6..96e1c91 100644 --- a/PyConJP/Model/Class/TalkObject.swift +++ b/PyConJP/Model/Class/TalkObject.swift @@ -12,19 +12,19 @@ import RealmSwift final class TalkObject: RealmSwift.Object { - dynamic var id: Int = 0 - dynamic var title: String = "" - dynamic var descriptionText: String = "" - dynamic var speakers: String = "" - dynamic var startDate: Date = Date() - dynamic var endDate: Date = Date() - dynamic var day: String = "" - dynamic var startTime: String = "" - dynamic var endTime: String = "" - dynamic var category: String = "" - dynamic var roomString: String = "" - dynamic var languageString: String = "" - dynamic var isFavorite: Bool = false + @objc dynamic var id: Int = 0 + @objc dynamic var title: String = "" + @objc dynamic var descriptionText: String = "" + @objc dynamic var speakers: String = "" + @objc dynamic var startDate: Date = Date() + @objc dynamic var endDate: Date = Date() + @objc dynamic var day: String = "" + @objc dynamic var startTime: String = "" + @objc dynamic var endTime: String = "" + @objc dynamic var category: String = "" + @objc dynamic var roomString: String = "" + @objc dynamic var languageString: String = "" + @objc dynamic var isFavorite: Bool = false convenience init(id: Int, title: String, descriptionText: String, speakers: String, startDate: Date, endDate: Date, day: String, startTime: String, endTime: String, category: String, roomString: String, languageString: String, isFavorite: Bool) { self.init() diff --git a/PyConJP/Model/Struct/Category.swift b/PyConJP/Model/Struct/Category.swift index 2b2d820..d72ac03 100644 --- a/PyConJP/Model/Struct/Category.swift +++ b/PyConJP/Model/Struct/Category.swift @@ -17,7 +17,7 @@ struct Category { extension Category { - init(dictionary: [String : Any]) { + init(dictionary: [String: Any]) { id = dictionary["id"] as? Int ?? 0 name = dictionary["name"] as? String ?? "" } diff --git a/PyConJP/Model/Struct/Level.swift b/PyConJP/Model/Struct/Level.swift index 705f7a1..f49d2b0 100644 --- a/PyConJP/Model/Struct/Level.swift +++ b/PyConJP/Model/Struct/Level.swift @@ -17,12 +17,12 @@ struct Level { extension Level { - init(dictionary: [String : Any]) { + init(dictionary: [String: Any]) { id = dictionary["id"] as? Int ?? 0 name = dictionary["name"] as? String ?? "" } - init?(dictionary: [String : Any]?) { + init?(dictionary: [String: Any]?) { guard let dictionary = dictionary else { return nil } id = dictionary["id"] as? Int ?? 0 name = dictionary["name"] as? String ?? "" diff --git a/PyConJP/Model/Struct/Place.swift b/PyConJP/Model/Struct/Place.swift index a9dabfb..2fbf68b 100644 --- a/PyConJP/Model/Struct/Place.swift +++ b/PyConJP/Model/Struct/Place.swift @@ -17,12 +17,12 @@ struct Place { extension Place { - init(dictionary: [String : Any]) { + init(dictionary: [String: Any]) { id = dictionary["id"] as? Int ?? 0 name = dictionary["name"] as? String ?? "" } - init?(dictionary: [String : Any]?) { + init?(dictionary: [String: Any]?) { guard let dictionary = dictionary else { return nil } id = dictionary["id"] as? Int ?? 0 name = dictionary["name"] as? String ?? "" diff --git a/PyConJP/Model/Struct/Speaker.swift b/PyConJP/Model/Struct/Speaker.swift index 1dcd8f6..c37a5b8 100644 --- a/PyConJP/Model/Struct/Speaker.swift +++ b/PyConJP/Model/Struct/Speaker.swift @@ -12,16 +12,16 @@ struct Speaker { let name: String let imageURL: String? - let twitterName: String? + let twitterAccount: String? } extension Speaker { - init(dictionary: [String : Any]) { + init(dictionary: [String: Any]) { name = dictionary["name"] as? String ?? "" imageURL = dictionary["image_uri"] as? String - twitterName = dictionary["twitter"] as? String + twitterAccount = dictionary["twitter"] as? String } } diff --git a/PyConJP/Resource/Settings.bundle/com.mono0926.LicensePlist.latest_result.txt b/PyConJP/Resource/Settings.bundle/com.mono0926.LicensePlist.latest_result.txt index af6ffcf..f6dc928 100644 --- a/PyConJP/Resource/Settings.bundle/com.mono0926.LicensePlist.latest_result.txt +++ b/PyConJP/Resource/Settings.bundle/com.mono0926.LicensePlist.latest_result.txt @@ -1,13 +1,13 @@ -name: Result, nameSpecified: , owner: antitypical, version: 3.2.3 +name: Result, nameSpecified: , owner: antitypical, version: 3.2.4 name: APIKit, nameSpecified: , owner: ishkawa, version: 3.1.2 -name: SpreadsheetView, nameSpecified: , owner: kishikawakatsumi, version: v0.8.3 +name: SpreadsheetView, nameSpecified: , owner: kishikawakatsumi, version: v0.8.4 -name: Kingfisher, nameSpecified: , owner: onevcat, version: 3.12.1 +name: Kingfisher, nameSpecified: , owner: onevcat, version: 3.13.1 -name: realm-cocoa, nameSpecified: , owner: realm, version: v2.10.0 +name: realm-cocoa, nameSpecified: , owner: realm, version: v2.10.2 add-version-numbers: false -LicensePlist Version: 1.4.5 \ No newline at end of file +LicensePlist Version: 1.7.0 \ No newline at end of file diff --git a/PyConJP/Storyboard/Base.lproj/Bookmark.storyboard b/PyConJP/Storyboard/Base.lproj/Bookmark.storyboard index 81dc69c..5380bc6 100644 --- a/PyConJP/Storyboard/Base.lproj/Bookmark.storyboard +++ b/PyConJP/Storyboard/Base.lproj/Bookmark.storyboard @@ -1,7 +1,12 @@ - + + + + - + + + @@ -13,7 +18,7 @@ - + @@ -29,15 +34,12 @@ - - - - - + + @@ -46,10 +48,11 @@ - - + + + @@ -62,16 +65,13 @@ - - - - - + - + + @@ -82,9 +82,10 @@ - - + + + diff --git a/PyConJP/Storyboard/Base.lproj/Conference.storyboard b/PyConJP/Storyboard/Base.lproj/Conference.storyboard index c76b9f2..1967f55 100644 --- a/PyConJP/Storyboard/Base.lproj/Conference.storyboard +++ b/PyConJP/Storyboard/Base.lproj/Conference.storyboard @@ -1,10 +1,12 @@ - - + + - + + + @@ -17,7 +19,7 @@ - + @@ -32,36 +34,33 @@ - - - - - + - + - + - - - - - + + + + + - + + @@ -80,16 +79,12 @@ - - - - - + - + @@ -97,11 +92,12 @@ - + - + + @@ -120,16 +116,12 @@ - - - - - + - + @@ -138,11 +130,12 @@ - - - - + + + + + @@ -156,19 +149,15 @@ - - - - - + - + - + @@ -180,7 +169,7 @@ - - - + + + - + - + - - + + + @@ -242,26 +232,23 @@ - - - - - + - + - + - - + + + diff --git a/PyConJP/Storyboard/Base.lproj/Events.storyboard b/PyConJP/Storyboard/Base.lproj/Events.storyboard index 2460c23..ff36fae 100644 --- a/PyConJP/Storyboard/Base.lproj/Events.storyboard +++ b/PyConJP/Storyboard/Base.lproj/Events.storyboard @@ -1,10 +1,12 @@ - - + + - + + + @@ -12,16 +14,12 @@ - - - - - + - + @@ -30,16 +28,17 @@ - - - - + + + + + - + @@ -56,19 +55,19 @@ - + - + - + - - - + + + - - + + + - @@ -841,6 +808,7 @@ We expect participants to follow these rules at conference and workshop venues a + diff --git a/PyConJP/Support Files/Info.plist b/PyConJP/Support Files/Info.plist index 67e9f24..d404514 100644 --- a/PyConJP/Support Files/Info.plist +++ b/PyConJP/Support Files/Info.plist @@ -15,11 +15,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.0.1 + 2.0.2 CFBundleSignature ???? CFBundleVersion - 1 + 3 LSApplicationQueriesSchemes twitter diff --git a/PyConJP/View/CustomImageView.swift b/PyConJP/View/CustomImageView.swift index eaec1a4..22c6634 100644 --- a/PyConJP/View/CustomImageView.swift +++ b/PyConJP/View/CustomImageView.swift @@ -35,7 +35,7 @@ class CustomImageView: UIImageView { // self.addGestureRecognizer(panGesture) } - func handleGesture(_ gesture: UIGestureRecognizer) { + @objc func handleGesture(_ gesture: UIGestureRecognizer) { if let doubleTapGesture = gesture as? UITapGestureRecognizer { doubleTap(gesture: doubleTapGesture) } else if let pinchGesture = gesture as? UIPinchGestureRecognizer { diff --git a/PyConJP/View/UICollectionViewCell/SpeakerCollectionViewCell.swift b/PyConJP/View/UICollectionViewCell/SpeakerCollectionViewCell.swift index f0694a5..a2b9961 100644 --- a/PyConJP/View/UICollectionViewCell/SpeakerCollectionViewCell.swift +++ b/PyConJP/View/UICollectionViewCell/SpeakerCollectionViewCell.swift @@ -25,7 +25,7 @@ class SpeakerCollectionViewCell: UICollectionViewCell { iconImageView.setImage(withURL: URL(string: WebConfig.hostURL + (speaker.imageURL ?? "")), imageTrainsition: UIImageView.ImageTransition.crossDissolve(0.3)) nameLabel.text = speaker.name - twitterLabel.text = (speaker.twitterName != nil ? "@\(speaker.twitterName!)" : nil) + twitterLabel.text = (speaker.twitterAccount != nil ? "@\(speaker.twitterAccount!)" : nil) } } diff --git a/PyConJP/ViewController/Base/TalkDetailViewController.swift b/PyConJP/ViewController/Base/TalkDetailViewController.swift index 5790f30..ebfe675 100644 --- a/PyConJP/ViewController/Base/TalkDetailViewController.swift +++ b/PyConJP/ViewController/Base/TalkDetailViewController.swift @@ -32,7 +32,7 @@ class TalkDetailViewController: UIViewController, StoryboardIdentifiable, Twitte @IBOutlet weak var speakersCollectionView: UICollectionView! { didSet { - let nib = UINib(nibName: speakersCollectionViewDataSource.reuseIdentifier, bundle:nil) + let nib = UINib(nibName: speakersCollectionViewDataSource.reuseIdentifier, bundle: nil) speakersCollectionView.register(nib, forCellWithReuseIdentifier: speakersCollectionViewDataSource.reuseIdentifier) speakersCollectionView.dataSource = speakersCollectionViewDataSource } @@ -94,7 +94,7 @@ class TalkDetailViewController: UIViewController, StoryboardIdentifiable, Twitte } - func refresh(_ refreshControl: UIRefreshControl) { + @objc func refresh(_ refreshControl: UIRefreshControl) { talkDetail = nil getDetail() } @@ -172,7 +172,7 @@ class TalkDetailViewController: UIViewController, StoryboardIdentifiable, Twitte } func collectionView(_ collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: IndexPath) { - guard let userName = speakersCollectionViewDataSource.speakers[indexPath.row].twitterName else { return } + guard let userName = speakersCollectionViewDataSource.speakers[indexPath.row].twitterAccount else { return } openTwitter(userName: userName, from: self) } } diff --git a/PyConJP/ViewController/Base/ZoomableImageViewController.swift b/PyConJP/ViewController/Base/ZoomableImageViewController.swift index e053ec6..b51183c 100644 --- a/PyConJP/ViewController/Base/ZoomableImageViewController.swift +++ b/PyConJP/ViewController/Base/ZoomableImageViewController.swift @@ -10,10 +10,9 @@ import UIKit class ZoomableImageViewController: UIViewController, UIScrollViewDelegate, StoryboardIdentifiable { - @IBOutlet weak var toolBar: UIToolbar! - @IBOutlet weak var baseScrollView: UIScrollView? @IBOutlet weak var imageView: UIImageView? + @IBOutlet weak var closeButton: UIButton! private var isCompletedLayoutSubviews = false @@ -51,14 +50,14 @@ class ZoomableImageViewController: UIViewController, UIScrollViewDelegate, Story private func toggleToolBarHiddenWithAnimation(_ toHidden: Bool) { if toHidden { UIView.animate(withDuration: 0.2, animations: { - self.toolBar.alpha = 0 + self.closeButton.alpha = 0 }, completion: { _ in - self.toolBar.isHidden = true + self.closeButton.isHidden = true }) } else { - toolBar.isHidden = false + closeButton.isHidden = false UIView.animate(withDuration: 0.2, animations: { - self.toolBar.alpha = 1 + self.closeButton.alpha = 1 }) } } @@ -70,20 +69,20 @@ class ZoomableImageViewController: UIViewController, UIScrollViewDelegate, Story } func scrollViewWillBeginZooming(_ scrollView: UIScrollView, with view: UIView?) { - toolBar.isHidden = true + closeButton.isHidden = true } - func singleTap(_ gesture: UITapGestureRecognizer) { - toggleToolBarHiddenWithAnimation(!toolBar.isHidden) + @objc func singleTap(_ gesture: UITapGestureRecognizer) { + toggleToolBarHiddenWithAnimation(!closeButton.isHidden) } - func doubleTap(_ gesture: UITapGestureRecognizer) { + @objc func doubleTap(_ gesture: UITapGestureRecognizer) { UIView.animate(withDuration: 0.2, animations: { self.baseScrollView?.zoomScale = 1 }) } - @IBAction func onCloseButton(_ sender: UIBarButtonItem) { + @IBAction func onClose(_ sender: UIButton) { self.dismiss(animated: true, completion: nil) } diff --git a/PyConJP/ViewController/Bookmark/BookmarkListViewController.swift b/PyConJP/ViewController/Bookmark/BookmarkListViewController.swift index 1dfb772..58f8092 100644 --- a/PyConJP/ViewController/Bookmark/BookmarkListViewController.swift +++ b/PyConJP/ViewController/Bookmark/BookmarkListViewController.swift @@ -12,7 +12,7 @@ class BookmarkListViewController: UIViewController, UITableViewDelegate, Storybo @IBOutlet weak var tableView: UITableView! { didSet { - let nib = UINib(nibName: bookmarkListDataSource.reuseIdentifier, bundle:nil) + let nib = UINib(nibName: bookmarkListDataSource.reuseIdentifier, bundle: nil) tableView.register(nib, forCellReuseIdentifier: bookmarkListDataSource.reuseIdentifier) tableView.dataSource = bookmarkListDataSource tableView.rowHeight = UITableViewAutomaticDimension @@ -48,7 +48,7 @@ class BookmarkListViewController: UIViewController, UITableViewDelegate, Storybo refresh() } - func refreshNotification(_ notification: Notification) { + @objc func refreshNotification(_ notification: Notification) { refresh() } diff --git a/PyConJP/ViewController/Conference/ConferenceListViewController.swift b/PyConJP/ViewController/Conference/ConferenceListViewController.swift index 9d35bd6..fb4d216 100644 --- a/PyConJP/ViewController/Conference/ConferenceListViewController.swift +++ b/PyConJP/ViewController/Conference/ConferenceListViewController.swift @@ -13,7 +13,7 @@ class ConferenceListViewController: UIViewController, ErrorAlertProtocol { @IBOutlet weak var tableView: UITableView! { didSet { - let nib = UINib(nibName: conferenceListDataSource.reuseIdentifier, bundle:nil) + let nib = UINib(nibName: conferenceListDataSource.reuseIdentifier, bundle: nil) tableView.register(nib, forCellReuseIdentifier: conferenceListDataSource.reuseIdentifier) refreshControl.addTarget(self, action: #selector(ConferenceListViewController.onRefresh(_:)), for: .valueChanged) @@ -62,7 +62,7 @@ class ConferenceListViewController: UIViewController, ErrorAlertProtocol { } - func onRefresh(_ sender: UIRefreshControl) { + @objc func onRefresh(_ sender: UIRefreshControl) { conferenceListDataSource.timelines.removeAll() tableView.reloadData() conferenceListDataSource.getTalksFromAPI { [weak self](result) in @@ -79,7 +79,7 @@ class ConferenceListViewController: UIViewController, ErrorAlertProtocol { } } - func refreshNotification(_ notification: Notification) { + @objc func refreshNotification(_ notification: Notification) { refresh() } diff --git a/PyConJP/ViewController/Conference/ConferenceTimetableViewController.swift b/PyConJP/ViewController/Conference/ConferenceTimetableViewController.swift index 5553e18..6482857 100644 --- a/PyConJP/ViewController/Conference/ConferenceTimetableViewController.swift +++ b/PyConJP/ViewController/Conference/ConferenceTimetableViewController.swift @@ -41,7 +41,7 @@ final class ConferenceTimetableViewController: UIViewController, StoryboardIdent refresh() } - func refreshNotification(_ notification: Notification) { + @objc func refreshNotification(_ notification: Notification) { refresh() } diff --git a/PyConJP/ViewController/More/MapViewController.swift b/PyConJP/ViewController/More/MapViewController.swift index 260f5b3..f6af7c0 100644 --- a/PyConJP/ViewController/More/MapViewController.swift +++ b/PyConJP/ViewController/More/MapViewController.swift @@ -35,7 +35,7 @@ class MapViewController: UIViewController, MKMapViewDelegate, StoryboardIdentifi region.center = venue.location region.span.latitudeDelta = 0.01 region.span.longitudeDelta = 0.01 - mapView.setRegion(region, animated:true) + mapView.setRegion(region, animated: true) let annotation = MKPointAnnotation() annotation.coordinate = venue.location diff --git a/PyConJP/ViewController/More/StaffListViewController.swift b/PyConJP/ViewController/More/StaffListViewController.swift index 6a3e507..d3d9c2e 100644 --- a/PyConJP/ViewController/More/StaffListViewController.swift +++ b/PyConJP/ViewController/More/StaffListViewController.swift @@ -13,7 +13,7 @@ class StaffListViewController: UIViewController, StoryboardIdentifiable, Twitter @IBOutlet weak var tableView: UITableView! { didSet { - let nib = UINib(nibName: staffListDataSource.reuseIdentifier, bundle:nil) + let nib = UINib(nibName: staffListDataSource.reuseIdentifier, bundle: nil) tableView.register(nib, forCellReuseIdentifier: staffListDataSource.reuseIdentifier) refreshControl.addTarget(self, action: #selector(StaffListViewController.onRefresh(_:)), for: .valueChanged) @@ -49,7 +49,7 @@ class StaffListViewController: UIViewController, StoryboardIdentifiable, Twitter } - func onRefresh(_ sender: UIRefreshControl) { + @objc func onRefresh(_ sender: UIRefreshControl) { refresh() }