NSString/NSArrayの時と比べると大分タイプ数が減ってすっきりしました。 joinとsplitはビルドイン関数になりました。 文字列の分割 split let csvRow = "one,two,three" as NSString let cells = csvRow.componentsSeparatedByString(",") // ["one","two","three"]
![Swiftで文字列の分割と連結 (split & join) - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/2665a9222151c7d3413a04b00abcbf471dfad8ce/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9U3dpZnQlRTMlODElQTclRTYlOTYlODclRTUlQUQlOTclRTUlODglOTclRTMlODElQUUlRTUlODglODYlRTUlODklQjIlRTMlODElQTglRTklODAlQTMlRTclQjUlOTAlMjAlMjhzcGxpdCUyMCUyNiUyMGpvaW4lMjkmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTk0MmVjZWQ4NjE3ZjA1OTU3MmU3MTgwZWI3ZDMxN2Nk%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQweXVjaF9pJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz00YmYwNTk0ZDdjMTU3MGYwOWQ4MzhlYTMwNGVkMDk1Nw%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D5ef50c38fa993718e94a25ce032f6b57)
はじめに AVSpeechSynthesizerはiOS7で追加された音声読み上げライブラリです。 今更な感じもしますが、個人的に気になっていたので試してみます。 テキストに入力した文字をボタンを押したタイミングで読み上げる、シンプルすぎるサンプルを作ってみたいと思います。 実装 画面構成 プロジェクトはSingleViewApplicationで作成します。 そして、storyboardは下図のように配置しました。 ViewController.swift に UITextViewのアウトレットとボタンのアクションを設定します。 ソースコード import UIKit import AVFoundation class ViewController: UIViewController { /** 話す内容を入力するテキストフィールド */ @IBOutlet weak var speec
With the introduction of Swift I've been trying to get my head round the new language I'm an iOS developer and would use types such as NSString, NSInteger, NSDictionary in an application. I've noticed that in the "The Swift Programming Language" ebook by Apple, they use the Swift types String, Int, Dictionary I've noticed the Swift types don't have (or are differently named) some of the functions
はじめに シチュエーション 部屋で作業をしているとき、突然お母さんが部屋に入ってきたという経験はありませんか? そんな状況を避ける為に、今回はお母さんが部屋に近づいてきたことを知らせる夢のようなアプリを 「iBeacon」を使用することで作ってみたいと思います。 iBeaconとは iOSで地図などに使用されていた「Core Location」にiOS7以降に新たに加わった機能です。 CoreLocationは元々GPSからデバイスを検出していた為、近距離や屋内での使用には不向きでした。 iBeaconはBluetooth LEを使用することで、近距離でのデバイスの位置情報を容易に取得できるようにしたものです。 アプリの仕組み まずお母さんにはestimote社から発売されている ビーコンを大切なものだから..と言って常に持ってもらいます。 http://estimote.com/ ⬇️
Objective-CではNSStringが利用されていましたが、SwiftからはStringが追加。どちらも利用できますがStringを使うことをオススメです。 NSStringのクラス階層 NSObject ↑ NSString 参考Appleサイト(英語): Foundation Framework Reference NSString Class Reference NSStringとStringどちらも使えば良いか SwiftからはNSStringではなくStringの利用を推奨されています。どうやらOptional型が導入されてString側には明記なしにはnilが代入できない(安全性が高い)為のようです<NSStringにはnilを入れることが可能>。ただし、 NSStringにはあったlength等のメンバ関数がStringにはなかったりと不便もあります。 参考:Swift
正規表現を使って文字列中にある任意のパターンにマッチした部分文字列を抽出する。NSRegularExpressionを使うと、正規表現を用いた文字列のマッチ、及び抽出を行うことができる。 グループ機能にも対応しており、正規表現パターン中の()で括った部分文字列をキャプチャすることもできる。正規表現パターンにおける各グループは、firstMatchメソッドから返されるNSTextCheckingResultオブジェクトのrangeメソッドで取得できる。 検索対象の文字列から、マッチさせたグループ毎に文字列を抽出するためにNSStringのsubstringメソッドを使う。このため、予め検索対象の文字列をNSStringにキャストする等しておくと後で楽かも知れない。 // 正規表現を使って文字列を抽出 // NSRangeを扱うので検索対象の文字列は先にNSStringにしておくと後で楽かも
以前、NSURLSessionに関する記事を書いた。 [iOS] NSURLSessionを使って通信を行う 今回はSwiftで同じことをやってみる。 画像をダウンロードする 今回もここから始めていこう。 まずはStoryboardでこのように設定する。 今回はAutoLayoutは使用しない(赤枠の部分を参照)。 このままシミュレータで動かすとiPhoone6等では表示が崩れるが、そこは今回の主題とは離れるので気にしないこととする。 「通信開始」を押すと画像をダウンロードし、ImageViewに表示するというのが仕様だ。 通信開始ボタンとImageViewはViewControllerに接続しておく。 この段階ではViewControllerはこのようになっている。 ハイライト部分がStoryboardから接続した部分だ。 それでは早速通信処理を追加しよう。 まずは画像をダウンロードする
Swiftで他のサービスやアプリとつながるiOSアプリを作成しながら、「アプリの考え方」が習得できる本連載。今回は、iOSアプリとSNSをつなげる方法、「iOSアプリからSNSへ直接投稿する機能」について解説します。アプリを見ていて、シェアしたいと思ったらすぐに投稿できます。最近のアプリには必須の機能です。 アプリからSNSへ投稿する方法 iOSアプリからSNSへ直接投稿する方法は、大きく2つの方法があります。 1. シェアボタンでTwitterやFacebookに投稿する方法 Twitterや、Facebookの投稿用のボタンを押すとダイアログが表示され投稿できる方法です。 シェアするSNSの数のボタンを用意する必要がありますが、ボタンを押したら、対応するSNSの投稿用のダイアログが表示されるのでわかりやすいです。 2.共有のアクションシートから投稿させる方法 シェアボタンを押すと、シス
オプショナル型とは、変数の型がもつ通常の値に加えて、空の(値が無い)状態を保持できる変数です。空の状態はnilで表現します。 Apple社のSwiftの解説では、"optional type"、又は、"optional value"と書かれています。ここではオプショナル型としていますが、公式な呼び方ではありません。 宣言 オプショナル型は、変数の宣言時に、型の後ろに「?」をつけて宣言します。 var name: String? name = nil // オプショナル型でない変数にはnilを代入できない。 var name: String name = nil // エラーになる。 オプショナル型は宣言時に値を代入しない場合は自動的にnilの値が設定されています。そのため宣言時にnilで初期化する必要はありません。 オプショナルバインディング オプショナル型は、次の様にif文の条件で使用す
let encodedString = targetString.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet()) let decodedString = encodedString.stringByRemovingPercentEncoding; extension String { func escapeStr() -> String { var raw: NSString = self var str = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,raw,"[].",":/?&=;+!@#$()',*",CFStringConvertNSStringEncoding
【確認ver】Swift 3.0.2【語】annotation 注釈 //Swift 3.0.2 var abc //エラー abcが何の型かわからない。 var abc: Int や var abc = 0 なら型が決まる(推測できる)のでOK。 //Swift 3.0.2 var a, b, c: Int = 0 //エラー Intと=0はcのみに対して適用されるようで、aとbが不確定になる。 var a, b, c: IntならOK。 //Swift 3.0.2 var a, b = 0, c: Int //エラー aに対して、= 0は適用されない(bに対して適用)、Intもaに対して適用されない(間に= 0が適用されたbがあるため?)
はじめに JSONはVALUE部分の多様な型※とnilになる可能性もあるため、Swift言語のみでは扱いにくいところがあります。 そんな問題を解決する、パースしたJSONオブジェクトを扱いやすくするライブラリや、モデルにマッピングまで行うものまで、JSONを便利に扱えるライブラリをご紹介します。 ※ String, Int, Float, Double, Array, Dictinary, etc SwiftyJSON/SwiftyJSON ★3526 The better way to deal with JSON data in Swift. パース後のJSONオブジェクトを扱いやすくするライブラリです。 Non-optional getterでVALUEがnilの場合でもデフォルト値で扱えるのは便利です。Arrayに要素数を超えた添字でアクセスしてもクラッシュせずにerrorオブジェ
連想配列とは、インデックスのかわりにキーを使って個々の要素を識別することのできるデータ構造です。 1.連想配列の宣言 連想配列は Dictionary の後にキーの型と値の型を書いて宣言します。配列の値は角括弧の中にキーと要素の値をコンマで区切って書きます。var 連想配列名 : Dictionary<キーの型, 値の型> = [キー:値, キー:値, ... ]角括弧を使って短く記述することもできます。var 連想配列名 : [キーの型, 値の型] = [キー:値, キー:値, ... ]以下は配列の宣言例です。 var display : Dictionary<String, String> = ["type":"LCD","size":"1920x1080"] // キーも値もStringの配列var features:[String: String] = ["OS":"iOS8"
本投稿の個別の説明( Optional とは何か、 ?. と map, flatMap の関係、その背後にあるモナドという概念)は 2017 年現在でも通用するものですが、 Swift の Optional の使い方としては、僕の考えとのズレが大きくなってきました。 Swift の Optional をいつ・どのように使うべきかについてもまとめた ので、そちらも併せて御覧下さい。 Optional は Swift の仕様の中でもっとも素晴らしいものの一つだと、僕は考えています。 null参照 (多くの言語で nil や null と呼ばれるもの)を発明したトニー・ホーアは次のように述べています[^1]。 それは10億ドルにも相当する私の誤りだ。null参照を発明したのは1965年のことだった。(中略)これは後に数え切れない過ち、脆弱性、システムクラッシュを引き起こし、過去40年間で10億ド
怪しいイラストでiOSアプリ勉強するSwiftサラリーマン もう私Objective-Cには戻れないと思いました。 SwiftがAppleから発表されてからイジっていたのですが、 英語のサイトは多いのに、日本語のサイトが非常に少なく不便!なので恐れ多いですが自分自身の勉強の為と思ってつくってみました。 毎朝家を出ては朝活動というか朝の趣味の時間を利用してコツコツ一つずつコーディングしていけたらと思っております。 まだまだデバッグ毎に全コンパイルしたりとキャッシュしない等の開発速度等の不便なところも多いのですが、 Objective-Cには戻れない魅力があります(Objective-Cの煩わしいカッコが逆に懐かしく感じるくらい) そして、そしてとうとう 2015年の冬にオープンソースにもなりGithubにもソースコードが公開されています。今後が期待の言語です。 Stack Overflowの
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く