Skip to content

Instantly share code, notes, and snippets.

@niwatako
niwatako / CodePiece.swift
Created September 14, 2016 10:53
b = a したのにそのあと a == b にならないコード #CodePiece #iphonekyoto
var a = (price: 180, no: 32)
var b = (no: 0, price: 10)
b = a // b = (no:32, price: 180) になる
if a == b {
print("実行されない")
}
@niwatako
niwatako / CodePiece.swift
Created August 6, 2016 07:21
FavoritesViewController.swift #CodePiece #realm_swift #realm_jp
//
// FavoritesViewController.swift
// Twitter
//
// Created by kishikawakatsumi on 3/12/16.
// Copyright © 2016 Realm. All rights reserved.
//
import UIKit
import RealmSwift
@niwatako
niwatako / CodePiece.swift
Created August 6, 2016 06:43
getHomeTimelineの最後にグルグルを止める処理を書いておく。UI操作だからメインスレッドで呼ぶよ! #CodePiece #realm_swift #realm_jp
dispatch_async(dispatch_get_main_queue()) {
self.refreshControl?.endRefreshing()
}
@niwatako
niwatako / CodePiece.swift
Created August 6, 2016 06:38
viewDidLoad で 引っ張られた時に refresh() 処理を行うようにする。 #CodePiece #realm_swift #realm_jp
override func viewDidLoad() {
// 略
refreshControl?.addTarget(self, action: #selector(TimelineViewController.refresh(_:)), forControlEvents: .ValueChanged)
}
func refresh(sender: UIRefreshControl) {
if let _ = self.account {
getHomeTimeline()
@niwatako
niwatako / CodePiece.swift
Created August 6, 2016 06:06
TimelineViewControllerは 1−6.タイムラインを表示 まで行くと多分こうなる #CodePiece #realm_swift #realm_jp
import UIKit
import Accounts
import Social
import RealmSwift
class TimelineViewController: UITableViewController {
var timeline: Results<Tweet>?
var notificationToken: NotificationToken?
@niwatako
niwatako / CodePiece.swift
Created August 6, 2016 05:37
UITableViewControllerにUITableViewDataSourceになるための実装を追加 #CodePiece #realm_swift #realm_jp
class TimelineViewController: UITableViewController {
// 中略
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return timeline?.count ?? 0
@niwatako
niwatako / CodePiece.swift
Created August 6, 2016 05:32
TimelineViewControllerに2つメンバ変数を追加、viewDidLoadに処理を追加 #CodePiece #realm_swift #realm_jp
class TimelineViewController: UITableViewController {
var timeline: Results<Tweet>?
var notificationToken: NotificationToken?
var account: ACAccount?
override func viewDidLoad() {
super.viewDidLoad()
@niwatako
niwatako / CodePiece.swift
Created August 6, 2016 05:26
ViewDidLoadでアカウントを取得して、getHomeTimeline()でそのアカウントを使う、エラーはアラートに #CodePiece #realm_swift #realm_jp
class TimelineViewController: UITableViewController {
var account: ACAccount?
override func viewDidLoad() {
super.viewDidLoad()
let accountStore = ACAccountStore()
let accountType = accountStore.accountTypeWithAccountTypeIdentifier(ACAccountTypeIdentifierTwitter)
accountStore.requestAccessToAccountsWithType(accountType, options: nil) { (granted, error) -> Void in
@niwatako
niwatako / CodePiece.swift
Created August 6, 2016 05:24
TimelineViewControllerのviewDidLoadでTwitterアカウントをOSから取得 #CodePiece #realm_swift #realm_jp
override func viewDidLoad() {
super.viewDidLoad()
let accountStore = ACAccountStore()
let accountType = accountStore.accountTypeWithAccountTypeIdentifier(ACAccountTypeIdentifierTwitter)
accountStore.requestAccessToAccountsWithType(accountType, options: nil) { (granted, error) -> Void in
if granted {
let accounts = accountStore.accountsWithAccountType(accountType)
if let account = accounts.first as? ACAccount {
self.account = account
@niwatako
niwatako / CodePiece.swift
Created August 6, 2016 05:20
SLRequestは、APIのURLを渡してOSから取得したTwitterアカウントを指定すれば、リクエストを生成してくれる #CodePiece #realm_swift #realm_jp
let requestURL = NSURL(string: "https://api.twitter.com/1/statuses/home_timeline.json")
let request = SLRequest(forServiceType: SLServiceTypeTwitter, requestMethod: .GET, URL: requestURL, parameters: nil)
request.account = account