投稿

ラベル(Swift)が付いた投稿を表示しています

キーボードの出入りに合わせる自前アニメーション処理は不要

UITextViewなどがファーストレスポンダになったときにキーボードが出てきて、それと同時に画面上のUIパーツもキーボードで隠れないように上に移動させることがよくあります。 キーボードの動きとUIパーツの動きのタイミングを合わせると見た目がシンプルになります。このUIパーツのアニメーションを自分で書くのではなく、OSに任せることが出来ます。 やり方 keyboardWillShowNotificationを受けたときに走らせるメソッドで、動かすUIパーツのframeやcenterの情報を書きます。あとは自動でアニメーションを行ってくれます。 シミュレーションで確認してみると、これが出来るのはiOS10からのようです。 自動でやってくれるのはUIパーツのframeの設定だけでなく、UITextViewの大きさを変更したときにカーソルが表示領域に入るようにスクロールオフセットの値を調整するのもやってくれるようです。 キーボードが出てくるときと同様にキーボードがしまわれるときは keyboardWillHideNotification を使います。 いたれりつくせりですね。 https://stackoverflow.com/questions/39292796/why-is-a-uiview-whose-frame-i-change-after-receiving-a-uikeyboardwillshownotific https://stackoverflow.com/questions/35914577/uikeyboardwillshownotification-animation https://stackoverflow.com/questions/39292796/why-is-a-uiview-whose-frame-i-change-after-receiving-a-uikeyboardwillshownotific https://medium.com/@shenghuawu/observe-ios-keyboard-notifications-a49323813656

Swiftの廃止になったコンパイルエラー

公開しても特にメリットがあるものではないが、間違えて公開を押してしまった。 Prefix/Postfix '***' is reserved 前置/後置演算子の***は予約されています 【出現ver】Swift 2.1 var abc =5 //エラー var def= 10 //エラー 決められた正しい使われ方をしていない。 =の前後のスペースの取り方が統一されてない。開けるなら左右とも開ける、閉じるなら左右とも閉じる。 【非出現ver】Swift 3.1 【このコンパイルエラーに変更になりました】'***' must have consistent whitespace on both sides All stored properties of a class instance must be initialized before returning nil from an initializer イニシャライザからnilで返る前に、クラスインスタンスの全てのストアドプロパティを初期化しないといけない 【出現ver】Swift 2.1 class ClassA { var a: String init?(a: String?) { if a == nil { return nil //エラー } self.a = "" } } Swift 3.1ではエラーにならなかった。仕様変更か。 【非出現ver】Swift 3.1 Cannot assign to 'let' value '〜' letで宣言した定数に値を代入しようとした 【出現ver】Swift 2.1より前 【非出現ver】Swift 2.1 【このコンパイルエラーに変更になりました】Cannot assign to value: '***' is a 'let' constant Cannot assign to immutable value of type '***' 変更できない型'***'に代入でき...

Swift 3.0でStringはどうなったか

前回Swift2.0のStringの仕様を調べたが、編集系(append, insert, remove, replace)のメソッドの仕様は整理しきれていない、というくやしい終わり方をした。 Swift 2.0でStringはどうなったか - 特殊文字などの扱い 今回はまず、この編集系メソッドから見ていく。 編集系メソッドの引数に与えるものは主にCharacterとStringであるが 、そのほかにCharacterを要素にもつシーケンスというものがある。これは、名前がSとして <S : Sequence where S.Iterator.Element == Character> という性質を持つ。ここではこれを「Characterシーケンス」ということにする。 append(連結)系 Swift2.0ではメソッド名がバラバラだったものが、めでたくappendに統一された。 CharacterやStringの場合は引数ラベルなしで与える。 Characterシーケンスの場合はラベルにcontentOfが付けられる。 mutating func append(_ c: Character) mutating func append(_ other: String) mutating func append<S : Sequence where S.Iterator.Element == Character>(contentsOf newElements: S) このほかに土台のStringに変更を加えないで、与えられたものを追加したStringを返すメソッドがある。 func appending(_ aString: String) -> String これは土台のStringが変更されないので、mutatingが付けられていない。他の編集系メソッドにも語尾がingでこの性質のメソッドがある。 insert(挿入)系 これも名前がinsertに統一された。 appendと同じようにCharacterシーケンスの場合はラベルにcontentOfが付けられる。 Stringを受けるものはない? mutating func insert(_ newElement: Character, at i: Stri...

Swift2.2からSwift3.0への変換を行ってみて

イメージ
Xcode8のGMが出たので、Swiftを2.2から3.0へ変換しました。自動でコンバートするXcodeの機能を使いました。 変換箇所があらかじめ表示されるので、一通り見て気が付いたことを書いていこうと思います。 enumの要素の頭文字が小文字に統一 どっちが正解なのかなぁと思いながらプログラムを作成していた部分なのではっきり決めてくれて良かったです。 配列の初期化メソッド 配列の初期化によく使われる init(count: repeatedValue: )が init(repeating: count: ) になりました。順番が変わって、さらに現在分詞になりました。 NS抜け NSBundle が Bundle へ変更 NSIndexPath が IndexPath へ変更 NSURL が URL へ変更 Appleに従うのみ。 タイプメソッド扱いしていたものがタイププロパティ扱いに NSBundle.mainBundle() が Bundle.main へ変更 UIScreen.mainScreen() が UIScreen.main へ変更 UIDevice.currentDevice() が UIDevice.current へ変更 UIColor.whiteColor() が UIColor.white へ変更 //例 open class var white: UIColor { get } 従うのみ。 CoreGraphics衣替え CGRectMakeなどのC言語ベースのCG***関数がSwift3.0では廃止になっています。 (旧)CGRectMake(***) が (新)CGRect(***) へ変更、CGRect(***)の方はSwiftの構造体のinit命令呼び出しです。 (旧)CGPointMake(***) が (新)CGPoint(***) へ変更、CGPoint(***)の方はSwiftの構造体のinit命令呼び出しです。 (旧)CGRectContainsPoint(CGRect rect, CGPoint point) が (新)CGRectインスタンスに対するcontains(_:)メソッドへ変更 (旧)CGContextFillPath(CGContext...

Swift2 標準ガイドブック

説明は全体的にざっくりアバウトな感じなので荻原本などを併用すること。 イニシャライザの項目に間違いが多いので修正があるといいです。

詳解Swift改訂版買いました

詳解Swift改訂版を買いました。 Objective-C版も持っています。Objective-C版に比べて推敲が甘いかなと感じる部分が特に最後の方で多かったです。版を重ねて修正が加わるといいです。 以下、自分用のメモ。 構造体 イニシャライザ内でメソッドを呼ぶのは初期値設定が全部済んでから。 構造体の内部で別の構造体を定義出来る。 構造体の内部で、typeエイリアスを使って、別名を与えることが出来る。(メリット?) タイププロパティの値を変更するインスタンスメソッドにはmutatingは不要。 タイププロパティの初期化のための式は値が必要とされた時に初めて評価される。 didSet WillSetはinit()内での設定では呼ばれ無い。didSetで値を設定しても再帰的に呼ばれることはない。 オプショナル オプショナル==nilはnilかどうか オプショナル==非オプショナルは中身を比べることが出来る if letのほかにif varもある readLineは標準入力 ??の右はオプショナルでもいい。??は連鎖できる。 配列 配列を反対にするreverse()というメソッドがある。 String Characterの配列からStringインスタンスを作るinitメソッドがある UnicodeScalarにはvalueプロパティがあって値を取り出せる 辞書 新規はdict[a] = aaa 削除はdict[b] = nil updateは更新、ただしもとからない場合は作成しない。 Tuple let aTuple = (1, 2, 3) let (a, b, c) = aTuple //これが出来る let (aa, _, _) = aTuple //使わないときは_が使える 値が一つだけのTupleはその値だけと変わらない 要素が一つもないことを()で表現。Voidは()の別名 違うキーワードのTuple間の代入は無理。型が同じでも。一度キーワードなしにキャストすればOK キーワード付きのタプルの代入では順番が違っていてもキーワード毎に要素が代入される。キーワードがない部分は順番通りに代入される。 タプルにTypealiasでなまえをつけることができる。 Switch オプショナル付きのタプルを扱える switch a ...

xibでUIView内レイアウト設計してアプリに取り込むシンプルな方法 Swift編

イメージ
1.UIViewのサブクラスのソースファイルを作成。 2.UIViewをベースにして新規xib作成(UIViewControllerではない)。 3.xibで、UIViewのクラスを1で作ったクラスに設定する。 4.作成したUIViewを取り込みたいUIViewControllerなどでインスタンスを作成する let settingView: SettingView = NSBundle.mainBundle().loadNibNamed("SettingView", owner: nil, options: [:]).first as! SettingView 5.xib内でレイアウトを行う。

Swift Compiler Architecture (Swiftコンパイラの構造)

Swiftがオープンソースになって公開された資料の中でSwiftのコンパイラについて書かれている部分を抜粋し、日本語に訳す。意味がわからないところは(?)を付けた。 Compiler and Standard Library The main Swift repository にはSwiftのコンパイラとスタンダードライブラリのソースコードがあります。 Compiler Architecture Swiftで書かれたソースコードからLLVM IRに変換される工程です。上から下に流れていきます。 Parsing ( lib/Parse ) : parserはソースコードをAbstract Syntax Tree (AST)に変換します。ここでは意味の情報も、型の情報も扱いません。ソースに文法の問題があるときはメッセージを出します。 Semantic analysis ( lib/Sema ) : parseされたASTを整形された型チェック済みのASTに変換します。意味の問題があるときはメッセージを出します。ここには型推論が含まれます。 Clang importer ( lib/ClangImporter ) : Clang modules をインポートします。そしてCやObjective-CのAPIと対応するSwiftのAPIをmapします(?) SIL generation ( lib/SILGen ) : Swift Intermediate Language (SIL)とはSwift用の中間言語で、さらなる分析と最適化に適しています。SIL generationは型チェック済みのASTを"生の"SILに"レベル下げ"します。 SIL guaranteed transformations ( lib/SILOptimizer/Mandatory : 変数の初期化などのデータの流れを診断します。この工程を終えると“canonical(正式な)” SILとなります。 SIL Optimizations ( lib/SILOptimizer/Analysis と lib/SILOptimizer/ARC と lib/SILOptimizer/LoopTransforms と lib/SILOp...

Objective-Cで保存したアーカイブデータをSwiftで読み込む

アプリをObjective-CからSwiftに書き換える際、少し悩むことに、Objective-Cで保存したアーカイブデータ(ユーザーのデバイスに保存されている)をSwiftで読み込むにはどうすればいいのかということがあります。 ここでは、NSKeyedUnarchiverやNSKeyedArchiverクラスを用いて利用するアーカイブデータがデバイスに保存されている場合に限定して、アプリをSwiftに書き換える時の手順などをまとめます。 ファイルの場所の指定 データの保存と読み込みではファイルの場所を指定します。ファイルの場所の指定はObjective-CとSwiftでほとんど同じ感覚でいけます。 var fileName = "" let paths: [String] = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) if 0 < paths.count { fileName = paths[0] fileName.appendContentsOf("/targetObject.dat") //print(fileName) } if 0 < paths.countは一応入れといた。 ちなみにstringByAppendingPathComponentというNSStringクラスのメソッドは使えなくなったようです。追加するものの前に自動的に/を加えるメソッドです。URLクラスに同じ機能のメソッドがありそっちを使えと表示が出ます。使えなくなったのが意図的だとすればStringとして扱うかURLとして扱うか中途半端ということでしょうか。 アプリにアーカイブ機能を付けるためにソースを書く部分 主に3つあります。 1 : データを保存するところ 2 : データを読み込むところ 3 : データ自体の定義 データの保存/読み込み データの保存/読み込みの仕方は A : オブジェクトをファイルに直接アーカイブする B : NSDataを介してオブジェクトをファイルにアーカイブする と2つあります。保存時と読み込み時でやり方が「対」になっていると余計...

Swiftのオプショナルのオプショナルて何??

イメージ
オプショナルのオプショナルはあります。 正式な呼び方がなんなのかはわからないけど確かにあります。ちょっと長くなるけど調べたときのいきさつ形式で書きます。 エラーハンドリングについて調べていたときに以下のコンパイルエラーに遭遇しました。 Value of optional type 'Int?' not unwrapped; did you mean to use 'try!' or chain with '?'? オプショナルの値のInt?はアンラップされません、やろうとしていることはtry!か、?を使った連鎖で出来ませんか? このエラーは以下のようなプログラムの最後にある try? で出ました。実行はPlaygroundです。 enum MyError: ErrorType { case myError } func someThrowingFunction(a: Int) throws -> Int { if 1 < a { throw MyError.myError } return a } func someFunction() { let a: Int = try? someThrowingFunction(5) //ここでエラー発生 } このエラーメッセージは、「try? というのは戻り値を格納する値の型をオプショナル型にする必要があるのでして下さい」という趣旨のメッセージです。ここでは最後のaの宣言を Int? にすればよいです(または型を書かずにコンパイラに推論させればよい)。 まあこれでこの件は解決なんですが、ただ、メッセージの最後の chain with '?' (?を使った連鎖)が気になりました。chainは連ねるという意味ですから??のように重ねること?なぜこの状況でchainが出てくるのか?といろいろ考えているうちに、もしかして ?? というものがあるのでは?と思い、以下のプログラムを試してみました。メソッドの戻り値を Int? にしてみました。 //戻りをInt?に変更 func someThrowingFunctionOPT(a: Int) throws -> Int? { if 1 < a...

Swift 2.0でStringはどうなったか - 特殊文字などの扱い

イメージ
Objective-CのNSStringの仕様は自然ではなかったので、Swiftには期待しています。 Swift2.0でStringの仕様がだいぶ変わったということで検証してみます。 昔は何が困ったか 今回のStringの仕様の検証は、昔の仕様で困っていた部分が動機になっているので、まずそれを書きます。NSStringでは文字を基本的に16ビットで扱っていますが、文字の中には16ビットで扱えないものがあり、そういうものは32ビットなど他の長さで使用します。そのごちゃごちゃはUnicodeの仕様上仕方ないのですが、NSStringではその32ビット文字を2文字としてカウントするなどUnicodeのごちゃごちゃをうまくさばききれていなくて扱いが雑な部分がありました。 欲しいものは、内部で何ビットだろうとどういうどういうデータ状態であろうと、人間が一文字と認識するものは一文字として扱うというポリシーに従ったAPIです。 Swiftが発表になったときにUnicodeとの親和性もアピールしていたので期待しています。 The Swift Programming Languageを読む まずはいつものThe Swift Programming Languageで基本をおさらい。 ・Stringはvalue typeである(reference typeではない)。 ・Stringの文字列に含まれている個々の文字へのアクセスにはStringのcharactersプロパティからアクセス出来る。 ・SwiftのStringは内部ではUnicode scalarをベースにしている。Unicode scalarとは文字や記号に対応する21ビットの数。U+0000からU+D7FFとU+E000からU+10FFFFがある。U+D800からU+DFFFは含まない。U+が何かというのは大変ややこしいので割愛。 ・人間が文字と認識する形式がExtended Grapheme Cluster。SwiftのCharacterは一つのExtended Grapheme Clusterに対応。 一つのExtended Grapheme Clusterは一つ以上のUnicode scalarで構成される 。 ・Stringの文字数カウントはcharactersプロパティのcountプロ...

Swiftブログの要点まとめ 2015

イメージ
appleの公式Swiftブログ(英文) の各記事の要点を日本語でまとめます。 英語のトレーニングを兼ねて... Swift is Open Source 2015年12月3日 Swiftはオープンソースになりました。 関連項目は Swift.org Swiftに関わる人のためのサイト github.com/apple ソースコードの置き場 Swiftパッケージマネージャーというコードを共有したりビルドするためのツール Swiftネイティブコアライブラリというスタンダードライブラリの上のレベルのもの LinuxだけでなくAppleのプラットフォームにも対応 Literals in Playgrounds 2015年10月7日 Playgroundでファイル、色、画像の扱いが可能になりました。 Swift 2 Apps in the App Store 2015年9月21日 Swift 2で作成したアプリが提出可能になりました。 Xcode 7はSwift 2を含みます。Swift 1.2から変更するにはEdit > Convert > To Latest Swift Syntaxを使用して下さい。 OS X El CapitanでXcodeを使うならXcode7を要求します。Xcode 6を使い続けるならOS X Yosemiteのままにして下さい。Xcode 7とYosemiteの組み合わせはOK。 Swift-er SDK 2015年8月12日 Xcode 6.3でObjective-Cに新しい機能のnullability annotationsが付きました。SwiftのOptionalに相当します。 Strings in Swift 2 2015年7月23日 Swift 2ではStringの仕様が変わります。 今までStringはCharacterのコレクションとして扱ってきましたがSwift 2ではそうではありません。Swift 2ではStringはcharactersというプロパティを持ち、そのcharactersプロパティがコレクション(文字の集まり)の性質を請け負います。 変更の理由は、StringはArrayやSet,Dictionaryといったコレクションとは極め...

SwiftでのdrawRect()

UIViewのdrawRec()メソッド内で線を描いたり円を描いたりするやり方について。 CGContextなんとかという関数を用いる方法が広く紹介されているが、実はUIBezierPathというクラスもある。これはCGContextなんとかを機能的にラッパーしたクラス。Appleの資料によるとこちらの方がおすすめらしいのでこれを中心に紹介していく。Bezierというとややこしい数式を用いた描画というイメージがあって名前で少し敬遠してしまうが、線を引いたり丸を描いたりといった単純な描画でもこのクラスをメインにするといい。UIPathのようなシンプルな名前にしておけばもっと人気(?)が出たかもしれない。 描くときの大まかな流れは 1 線の太さや使用する色を指定 2 パス(線要素)を必要なだけ足していく。 3 描画指令を出す となる。 UIBezierPathを使った描画 //色の設定 UIColor.redColor().setFill() UIColor.blueColor().setStroke() UIColorに色設定メソッドがあります。UIBezierPathというのはPathに関するものなので色は専門外なんでしょう。 でここからUIBezierPathのメソッドです。 //空インスタンス作成 let line = UIBezierPath() //線の太さ line.lineWidth = 2 //開始点 line.moveToPoint(CGPointMake(10, 10)) //追加点 line.addLineToPoint(CGPointMake(20,20)) //パスを描く line.stroke() //パスを閉じる line.closePath() //円や楕円 let daen = UIBezierPath(ovalInRect: CGRectMake(100, 100, 100, 100)) //四角 let shikaku = UIBezierPath(rect: CGRectMake(100, 100, 100, 100)) //中を塗る daen.fill() shikaku.fill() //角が丸い四角 let kadomaruSHi...

Swift資料の英単語 - Using Swift with Cocoa and Objective-C

実際に資料を読みながらわからなかった単語を記載していく。 英語は得意というわけではないので若干の誤りがあるかもしれない。 本文に合わせて多少変更した意味になっているところもある。 Using Swift with Cocoa and Objective-Cの範囲です。 Getting Started Interoperability 相互に操作出来ること? interface 連結する take advantage of を利用する Migration 移行 identical 一致する delineation 記述? reside 居住する vend 販売する、(この文脈では)供給する leverage 投資する、(この文脈では)導入する Interoperability Interacting with Objective-C APIs come over やってくる get sliced off 外される respective それぞれの consistency 一貫性 audit 検査する Mix and Match incorporate 取り入れる coexist 同時に同じ場所に存在する co + exist straightforward わかりやすい depict 表現する メモ Bridging-Headerを使う。SwiftからアクセスしたいObjective-CのヘッダーファイルをBridging-Headerに書く。 Xcode-generated headerを使う。Objective-CからアクセスするSwiftのファイルが書かれる。 Migration revisit 再検討する hassle やっかいごと

Interface「新時代コンパイラ入門」はよかった

Interface2015年3月号は「高性能でフリー!新時代コンパイラ入門」特集。 Swiftのコンパイルエラーの記事を書いたこともあって買ってみました。 変なハショリなどもなく読みやすかったです。 話に出てくるコンパイラはいさぎよくGCCとLLVMに絞ってあります。 コンパイルの各工程の解説が書かれています。 対象読者は普段プログラムをされている方か昔されていた方。そうでない方だと意味のわからないアルファベットが大量に出てくる状態になってつらいかもしれません。 対象とする前程知識はかなり基本的なコンパイラの知識で十分です。 ・コンパイルとはプログラムを解釈してCPUへの命令に置き換える作業 ・ARMとはCPUの設計をする会社 ・ARMが作ったものにはv7やv8などがある 程度でOKでした。 自分が読んだ部分はSwiftでの開発に関係ありそうなところだけで イントロダクション Appendix 1 第1章〜第6章 でした。 Clangの機能の使い方についての説明があった。これはブログで記事を書くのに役に立ちそう。

Unmanaged Objects

Swiftはいろいろと新しい設計がしてあって便利なんだけど、既存のものとの互換性という点で困ることがよくある。今回の内容もそのひとつ。メソッドの実行結果としてCore Foundationを受け取ってしまったとき。 返されたCore Foundationオブジェクトはおそらくメモリ管理がされていないUnmanaged<T>という型(?)となっている。Swiftはこのままでは使うことが出来ず、プログラマがこれをretainタイプ(CF_RETURNS_RETAINED)か非retainタイプ(CF_RETURNS_NOT_RETAINED)に決定してやる必要がある。これをするにはそのオブジェクトに対して takeUnretainedValue() か takeRetainedValue() を実行してやる。 説明に載っていた使用例は以下の通り func StringByAddingTwoStrings(CFString!, CFString!) -> Unmanaged<CFString>! let memoryManagedResult = StringByAddingTwoStrings(str1, str2).takeUnretainedValue() ポイントはretainタイプか非retainタイプかをどう判断すればいいのかということ。自分のプログラム内での使われ方から判断し、retainが必要ならretainすればいいのかなと思うのだが、今後の課題。

AVAudioSession細かいことまとめ(late 2014)

以前も書きました「AudioSessionの細かいことまとめ」のlate 2014版を書きます。 個人的なあらすじ 以前アプリを作る際に、AudioSession(C言語)とAVAudioSession(Obj-C)のどちらを使おうかと検討したことがありました。そのときはAVAudioSession(Obj-C)の方に機能が足りない部分が多少あって、これは主流にならないのではと思い、AudioSession(C言語)の方で実装しました。しかし予想は外れ、AudioSession(C言語)の方がiOS7より非推奨となったので、今回改めてAVAudioSession(Obj-C)の方でまとめてみます。せっかくなのでSwiftの方も併記して書いてみようと思います。基本的にAVAudioSessionのクラスリファレンスを読んでまとめるだけなので詳しく知りたいことがある場合はそちらを見て下さい。 ちなみに作っているアプリは SilentBonusTrack というカセットテープアプリで、iPodのような音楽再生機能が中心となっています。私の興味の対象はその辺の音楽再生系が中心になります。 重要な項目 まずは音を扱う場合には目を通しておく必要があるAudioSession関係です。 importするもの //Swift import AVFoundation //Objective-C #import <AVFoundation/AVFoundation.h> インスタンスの取得 このインスタンスに対して音の扱いに関するいろいろなメソッドを実行出来ます。 //Swift let session: AVAudioSession = AVAudioSession.sharedInstance() //Objective-C AVAudioSession *audioSession = [AVAudioSession sharedInstance]; Swiftの方はもしvarにする必要があればvarにしてください。 カテゴリーの指定 アプリの音の扱い方法を数パターンの中から選んで指定します。 //Swift var error: NSError? session.setCategory(AVAudioSessionCategoryPlayba...

SwiftのNSNumberでの符号なし整数の扱い

(追記 2015/10/22) Xcode7.1出ました。修正されました。 リリースノートには The NSNumberunsignedIntegerValue property now has the type UInt instead of Int, as do other methods and properties that use the NSUInteger type in Objective-C and whose names contain "unsigned..". Most other uses of NSUInteger in system frameworks are imported as Int as they were in Xcode 7. (19134055) と書かれています。 NSNumberは無事 public init(unsignedInteger value: UInt) public var unsignedIntegerValue: UInt { get } に変更されました。 (追記 2015/9/25) Xcode7.1より修正されるようです。 【Xcode 6.1】 SwiftのNSNumberではUIntとなりそうなところでなぜかIntが定義されています。 具体的には初期化メソッドの init(unsignedInteger value: Int) と値取り出しの var unsignedIntegerValue: Int { get } です。 間違いかと思ったのですが、両方で同じように変わっているのでわざとかなという気もします。 参考までにNSNumberで扱われているその他の型がObjective-CとSwiftでどう対応しているかは BOOL(Objective-C) Bool(Swift) char(Objective-C) Int8(Swift) double(Objective-C) Double(Swift) float(Objective-C) Float(Swift) int(Objective-C) Int32(Swift) どちらも32 NSInteger(Objective-C) I...

Swift資料の英単語 - Language Guide

実際に資料を読みながらわからなかった単語を記載していく。 英語は得意というわけではないので若干の誤りがあるかもしれない。 本文に合わせて多少変更した意味になっているところもある。 Language Guideの範囲です。 また、各項目について簡単なまとめも書きます(ほぼ自分用)。 The Basics 難易度★★★☆☆ まあ基本 Nonetheless それにもかかわらず its own versions / Swiftの中であらためて定義されている? fundamental 基本的な、根本的な textual 言葉通りの extensive 広範囲の to store and refer to / to storeと to refer to in intent 意図的に? compound 複合物 absence 不在 an example 一つの例 prevents A from B / AがBするのを防ぐ restriction 制限 Constants and Variables associate A with B / AとBを結びつけて考える once いったん…すると whereas その一方で attempt 試み Type Annotations 型の指定 in practice 実のところ A rather than B / BではなくてA (「むしろ」のような中途半端な表現がいらないような) Unicode characters 文字のキャラクターと動物のキャラクターをかけたダジャレ? 否定文 Nor 倒置した肯定文 / 両方否定 Unlike 〜と違って appropriate 適切な interpolation 書き込まれた語句 prompt A to do / 〜するようにそくす Semicolons although 〜 / 〜けど Integers fractional 微量の、少数の convention しきたり capitalized 大文字で始める Bound 境界 appropriate-sized ふさわしいサイズの therefore したがって alongside といっしょに (同じタイプ同士ならキャストの必要がないという意味?)...