Skip to content

Instantly share code, notes, and snippets.

@Eluss
Eluss / EventsFromCalendars.m
Last active August 29, 2015 14:26
Events from calendar
NSPredicate *predicate = [[EKEventStore new] predicateForEventsWithStartDate:startDate
endDate:endDate
calendars:calendars];
NSArray *events = [[EKEventStore new] eventsMatchingPredicate:predicate];
@Eluss
Eluss / ViewController.swift
Created August 29, 2015 08:11
import AVFoundation
import AVFoundation
@Eluss
Eluss / ViewController.swift
Created August 29, 2015 08:13
AVQueuePlayer instance
let queuePlayer = AVQueuePlayer()
@Eluss
Eluss / ViewController.swift
Last active August 29, 2015 08:22
queueing audio
let urlPath = NSBundle.mainBundle().pathForResource("your_file", ofType:"mp3")
let fileURL = NSURL(fileURLWithPath:urlPath!)
let playerItem = AVPlayerItem(URL:fileURL)
queuePlayer.insertItem(playerItem, afterItem:nil)
@Eluss
Eluss / ViewController.swift
Last active August 29, 2015 08:27
Audio utils
queuePlayer.play()
queuePlayer.pause()
queuePlayer.removeItem(queuePlayer.currentItem) // skip current audio
@Eluss
Eluss / Event.swift
Created October 2, 2015 15:22
Event class with nscoding
import Foundation
class Event : NSObject, NSCoding {
var name : String?
var details : String?
var date : NSDate?
init(name : String, details : String, date : NSDate) {
self.name = name
@Eluss
Eluss / InterfaceController.swift
Last active October 2, 2015 15:57
openParentApplication
@IBAction func buttonAction() {
let dictionary = ["message": "Hi, apple watch here!"]
WKInterfaceController.openParentApplication(dictionary) {
(replyInfo, error) -> Void in
let reply = replyInfo["event"] as! NSData // take our encoded event from dictionary
NSKeyedUnarchiver.setClass(Event.self, forClassName: "Event") // We are not using original class anymore, so we have to do it
let event = NSKeyedUnarchiver.unarchiveObjectWithData(reply) // decode the event
}
@Eluss
Eluss / AppDelegate.swift
Last active October 2, 2015 16:02
Appdelegate watch connection
func application(application: UIApplication, handleWatchKitExtensionRequest userInfo: [NSObject : AnyObject]?, reply: ([NSObject : AnyObject]?) -> Void) {
let message = userInfo?["message"] as! String // we can get a message, that we sent from watch
let event = Event(name: "test", details: "test", date:NSDate()) // create our Event object
NSKeyedArchiver.setClassName("Event", forClass: Event.self) // We are using 'different' classes on watch and iPhone, so we have to do it
let archivedEvent = NSKeyedArchiver.archivedDataWithRootObject(event) // archive the Event
let dictionary = ["event" : archivedEvent] // creating dictionary with our NSData
func application(application: UIApplication, handleWatchKitExtensionRequest userInfo: [NSObject : AnyObject]?, reply: ([NSObject : AnyObject]?) -> Void) {
let message = userInfo?["message"] as! String
let event = Event(name: "test", details: "test", date:NSDate())
NSKeyedArchiver.setClassName("Event", forClass: Event.self)
NSKeyedArchiver.archivedDataWithRootObject(event)
let dictionary = ["event" : event]
public private(set) lazy var imageView: UIImageView = {
let imageView = UIImageView()
imageView.layer.cornerRadius = Dimensions.imageSize / 2
imageView.clipsToBounds = true
imageView.contentMode = .ScaleAspectFill
return imageView
}()