This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// RepeatingTimer mimics the API of DispatchSourceTimer but in a way that prevents | |
/// crashes that occur from calling resume multiple times on a timer that is | |
/// already resumed (noted by https://github.com/SiftScience/sift-ios/issues/52 | |
class RepeatingTimer { | |
let timeInterval: TimeInterval | |
init(timeInterval: TimeInterval) { | |
self.timeInterval = timeInterval | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
Represents a semantic version number in the form X.Y.Z | |
Its most useful feature is that it implements `Comparable` | |
making for easy comparison checks. | |
*/ | |
struct VersionNumber { | |
let version: String | |
init(version: String) { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extension MyViewController { | |
func registerForPeekAndPopWithCollectionView(collectionView: UICollectionView) { | |
guard #available(iOS 9.0, *) else { return } | |
if traitCollection.forceTouchCapability == .Available { | |
registerForPreviewingWithDelegate(self, sourceView: collectionView) | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class TweetViewController: UIViewController { | |
var initiatingPreviewActionController: UIViewController? | |
override func previewActionItems() -> [UIPreviewActionItem] { | |
guard let initiatingPreviewActionController = initiatingPreviewActionController else { | |
assert(false, "Expected initiatingPreviewActionController to be set") | |
return [] | |
} | |
return [UIPreviewAction(title: "Share", style: .Default, | |
handler: {[unowned self] (_, _) -> Void in | |
let shareSheet = self.createShareSheet() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@available(iOS 9.0, *) | |
extension TwitterFeedViewController: UIViewControllerPreviewingDelegate { | |
public func previewingContext(previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? { | |
guard let indexPath = collectionView.indexPathForItemAtPoint(location), | |
cell = collectionView.cellForItemAtIndexPath(indexPath), | |
let tweet = viewModel.tweetAtIndexPath(indexPath) else { return nil } | |
//now we are ready to create our corresponding controller for the tweet | |
let tweetViewController = self.navigationCoordinationController.tweetControllerForTweet(tweet) | |
//I will expand on this in a bit but this lets us present controllers using peek and pop actions | |
tweetViewController.initiatingPreviewActionController = self |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- (NSString *)description { | |
//We list the properties and their values using the ever convenient `dictionaryWithValuesForKeys` | |
//which will get the values of the corresponding properties | |
NSDictionary *debugProperties = [self dictionaryWithValuesForKeys:@[NSStringFromSelector(@selector(<#Insert property name#>))]]; | |
return [NSString stringWithFormat:@"<%@: %p> %@", self.class, self, debugProperties]; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// MagicalRecordLogging.h | |
// MagicalRecord | |
// | |
// Created by Saul Mora on 10/4/13. | |
// Copyright (c) 2013 Magical Panda Software LLC. All rights reserved. | |
// | |
#import <MagicalRecord/MagicalRecord+Options.h> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
post_install do |installer| | |
require 'fileutils' | |
FileUtils.cp_r('Pods/Target Support Files/Pods/Pods-Acknowledgements.plist', 'Resources/Other-Sources/Settings.bundle/Acknowledgements.plist', :remove_destination => true) | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extension UITableView { | |
/** | |
Returns an index path identifying the row and section | |
of the cell containing the provided view | |
:param: cellSubview A subview of any given UITableViewCell in the table. Typically this is either a `UIButton` or `UITextField` | |
*/ | |
func indexPathForCellWithSubview(cellSubview: UIView) -> NSIndexPath? { | |
let cellFrame = convertRect(cellSubview.bounds, fromView: cellSubview) | |
let cellCenter = CGPoint(x: CGRectGetMidX(cellFrame), y: CGRectGetMidY(cellFrame)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
xcodebuild -exportArchive -archivePath $projectname.xcarchive -exportPath $projectname -exportFormat ipa -exportProvisioningProfile “Provisioning Profile Name” |
NewerOlder