Xcode 8.0 b3 + swift 2.3 support (#183)

* Fixes compilation for Xcode 8.0(beta 3)/Swift 2.3

* Adds NSCameraUsageDescription and NSPhotoLibraryUsageDescription to avoid crash on iOS 10 beta

* Runs swiftlint autocorrect
This commit is contained in:
Diego Sánchez 2016-07-18 23:28:11 +01:00 committed by GitHub
parent 1329c96a0e
commit d8a162cb0f
15 changed files with 27 additions and 14 deletions

View File

@ -420,6 +420,7 @@
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 2.3;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
@ -461,6 +462,7 @@
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_VERSION = 2.3;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";

View File

@ -699,6 +699,7 @@
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 2.3;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
@ -740,6 +741,7 @@
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_VERSION = 2.3;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";

View File

@ -180,7 +180,7 @@ public class BaseMessagePresenter<BubbleViewT, ViewModelBuilderT, InteractionHan
public func onCellBubbleLongPressEnded() {
self.interactionHandler?.userDidEndLongPressOnBubble(viewModel: self.messageViewModel)
}
public func onCellAvatarTapped() {
self.interactionHandler?.userDidTapOnAvatar(viewModel: self.messageViewModel)
}

View File

@ -151,7 +151,7 @@ public class BaseMessageCollectionViewCell<BubbleViewType where BubbleViewType:U
longpressGestureRecognizer.delegate = self
return longpressGestureRecognizer
}()
public private(set) lazy var avatarTapGestureRecognizer: UITapGestureRecognizer = {
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(BaseMessageCollectionViewCell.avatarTapped(_:)))
return tapGestureRecognizer
@ -323,7 +323,7 @@ public class BaseMessageCollectionViewCell<BubbleViewType where BubbleViewType:U
func avatarTapped(tapGestureRecognizer: UITapGestureRecognizer) {
self.onAvatarTapped?(cell: self)
}
public var onBubbleTapped: ((cell: BaseMessageCollectionViewCell) -> Void)?
@objc
func bubbleTapped(tapGestureRecognizer: UITapGestureRecognizer) {

View File

@ -57,7 +57,7 @@ public class ChatInputBar: ReusableXibView {
@IBOutlet var tabBarContainerHeightConstraint: NSLayoutConstraint!
class public func loadNib() -> ChatInputBar {
let view = NSBundle(forClass: self).loadNibNamed(self.nibName(), owner: nil, options: nil).first as! ChatInputBar
let view = NSBundle(forClass: self).loadNibNamed(self.nibName(), owner: nil, options: nil)!.first as! ChatInputBar
view.translatesAutoresizingMaskIntoConstraints = false
view.frame = CGRect.zero
return view

View File

@ -39,7 +39,7 @@ import UIKit
}
let bundle = NSBundle(forClass: self.dynamicType)
if let loadedView = bundle.loadNibNamed(self.dynamicType.nibName(), owner: nil, options: nil).first as! UIView? {
if let loadedView = bundle.loadNibNamed(self.dynamicType.nibName(), owner: nil, options: nil)?.first as? UIView {
loadedView.frame = frame
loadedView.autoresizingMask = autoresizingMask
loadedView.translatesAutoresizingMaskIntoConstraints = translatesAutoresizingMaskIntoConstraints

View File

@ -82,7 +82,7 @@ class PhotoMessageTestHandler: BaseMessageInteractionHandlerProtocol {
func userDidTapOnFailIcon(viewModel viewModel: ViewModelT, failIconView: UIView) {
self.didHandleTapOnFailIcon = true
}
var didHandleTapOnAvatar = false
func userDidTapOnAvatar(viewModel viewModel: ViewModelT) {
self.didHandleTapOnAvatar = true

View File

@ -92,9 +92,9 @@ class TextMessageTestHandler: BaseMessageInteractionHandlerProtocol {
func userDidTapOnFailIcon(viewModel viewModel: ViewModelT, failIconView: UIView) {
}
func userDidTapOnAvatar(viewModel viewModel: ViewModelT) {
}
func userDidTapOnBubble(viewModel viewModel: ViewModelT) {

View File

@ -578,6 +578,7 @@
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 2.3;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
@ -616,6 +617,7 @@
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_VERSION = 2.3;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};

View File

@ -22,6 +22,10 @@
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSCameraUsageDescription</key>
<string>NSCameraUsageDescription</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>NSPhotoLibraryUsageDescription</string>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>

View File

@ -44,7 +44,7 @@ class BaseMessageHandler {
func userDidTapOnAvatar(viewModel viewModel: MessageViewModelProtocol) {
print("userDidTapOnAvatar")
}
func userDidTapOnBubble(viewModel viewModel: DemoMessageViewModelProtocol) {
print("userDidTapOnBubble")
}

View File

@ -65,19 +65,19 @@ class DemoChatViewController: BaseChatViewController {
}
override func createPresenterBuilders() -> [ChatItemType: [ChatItemPresenterBuilderProtocol]] {
let textMessagePresenter = TextMessagePresenterBuilder(
viewModelBuilder: DemoTextMessageViewModelBuilder(),
interactionHandler: DemoTextMessageHandler(baseHandler: self.baseMessageHandler)
)
textMessagePresenter.baseMessageStyle = BaseMessageCollectionViewCellAvatarStyle()
let photoMessagePresenter = PhotoMessagePresenterBuilder(
viewModelBuilder: DemoPhotoMessageViewModelBuilder(),
interactionHandler: DemoPhotoMessageHandler(baseHandler: self.baseMessageHandler)
)
photoMessagePresenter.baseCellStyle = BaseMessageCollectionViewCellAvatarStyle()
return [
DemoTextMessageModel.chatItemType: [
textMessagePresenter

View File

@ -34,7 +34,7 @@ class DemoPhotoMessageHandler: BaseMessageInteractionHandlerProtocol {
func userDidTapOnFailIcon(viewModel viewModel: DemoPhotoMessageViewModel, failIconView: UIView) {
self.baseHandler.userDidTapOnFailIcon(viewModel: viewModel)
}
func userDidTapOnAvatar(viewModel viewModel: DemoPhotoMessageViewModel) {
self.baseHandler.userDidTapOnAvatar(viewModel: viewModel)
}

View File

@ -30,10 +30,11 @@ class DemoTextMessageHandler: BaseMessageInteractionHandlerProtocol {
init (baseHandler: BaseMessageHandler) {
self.baseHandler = baseHandler
}
func userDidTapOnFailIcon(viewModel viewModel: DemoTextMessageViewModel, failIconView: UIView) {
self.baseHandler.userDidTapOnFailIcon(viewModel: viewModel)
}
func userDidTapOnAvatar(viewModel viewModel: DemoTextMessageViewModel) {
self.baseHandler.userDidTapOnAvatar(viewModel: viewModel)
}

View File

@ -1081,6 +1081,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
ONLY_ACTIVE_ARCH = YES;
STRIP_INSTALLED_PRODUCT = NO;
SWIFT_VERSION = 2.3;
SYMROOT = "${SRCROOT}/../build";
};
name = Debug;
@ -1151,6 +1152,7 @@
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
STRIP_INSTALLED_PRODUCT = NO;
SWIFT_VERSION = 2.3;
SYMROOT = "${SRCROOT}/../build";
VALIDATE_PRODUCT = YES;
};