Swiftとは、iOS・macOS開発のためにAppleが開発したプログラム言語である。Objective-CやObjective-C++、C言語と共存することも考慮されており、比較的スムーズに移行できるとされている。 Playgroundsやターミナル上でインタラクティブにデバッグする事が可能。また、LLVMコンパイラを利用することで、ライブコーディングにも対応している。
Questions tagged [swift]
1805 questions
8
votes
3 answers
`var foo: Type!` と`var foo: Type?` の違い
Swiftの勉強中にvar cellSize: CGFloat! という記述が出てきました。
swiftではOptional型以外は値としてnilを取れないので、Optionalに変換してるのだと思うのですが
別の場所ではOptional型の宣言には?をつけると出ていました。
試しにCGFloat!をCGFloat?に置き換えてみたのですが、すぐにはエラーがでないようです。
この2つの表現にはどのような違いがあるのでしょうか?

ironsand
- 3,557
- 2
- 31
- 73
6
votes
1 answer
Optional型にnilリテラルを代入できる理由について
Optional型に、nilが代入できる理由は、NilLiteralConvertible プロトコルを実装しているからだと。
var a : Int? = nil
上記のようにnilをオプショナル型に代入するとき、
NilLiteralConvertible のイニシャライザがよばれることで、
nilの代入が可能となるみたいなのですが、
NilLiteralConvertible のイニシャライザの定義が次のようなっています。
init(nilLiteral:…

TAKA
- 369
- 2
- 13
6
votes
3 answers
swiftの構文[][]がわかりません。
func getWeatherString(local:Area) -> String
{
return ["晴れ","曇り","雨"][local.weather]
}
上記の return ["晴れ","曇り","雨"][local.weather] の構文が理解できません。
これはなんという仕組みなのですか?
ネットで調べようと思ってもキーワードがわかりません。

TAKA
- 369
- 2
- 13
5
votes
1 answer
UIKit<-segue->SpriteKit間の遷移でメモリリーク
こんにちは
SwiftでiPhoneアプリを開発しています。
Segueを使ってUIKit用のViewControllerと
SpriteKit用のGameViewControllerとを行き来できるようにしたのですが
iPhoneシミュレーターで実行すると、デバッグナビゲーターのメモリが
画面を切り替えるごとに30Mずつ増加して頭を抱えています。
やりたいことは実現できたのに、悔しいです。
もしよければお知恵をお貸しください。
環境
OSX 10.9.5
Xcode.6.1.1
New…

user2041681
- 97
- 1
- 6
5
votes
1 answer
mutableCopy()について
Stringを、NSMutableStringにcastする際、以下のようにmutableCopy()を使用します。
var sample1: String = "aaabbb"
var sample2: NSMutableString = sample1.mutableCopy() as! NSMutableString
しかし、String Structure Referenceを見ても、StringはmutableCopyメソッドは持っていないようで、NSObject Class…
user7165
4
votes
2 answers
swiftでArrayを擬似乱数でshuffleする方法は?
SwiftでArrayをShuffleする方法として、以下のようなロジックを見つけました。
extension Array {
mutating func shuffle() {
for i in 0..<(count - 1) {
let j = Int(arc4random_uniform(UInt32(count - i))) + i
swap(&self[i], &self[j])
}
…

osamu1203
- 647
- 1
- 10
- 23
4
votes
2 answers
Swift で型を変数に代入できるようになっているのは何に使うためですか?
realm swiftでindexPath.rowを使いたい という質問を見て、Swift では型自体も第一級の値であり、変数に代入できるようになっていることを知りました。しかしアプリ用途かつ静的型付き言語である Swift で型を値として使えてどのように嬉しいのかが、すぐには分かりませんでした。
Swift で型を値として使うユースケースとして、どのようなものがあるのでしょうか?

nekketsuuu
- 23,683
- 11
- 50
- 115
4
votes
1 answer
引数型の不定な関数を変数にいれたい
次のように start でコールバック関数を渡して、処理が終わったらコールバック関数を実行したいです。
func callAPI() {
SomeAPI().start(someAPICompleted)
}
func someAPICompleted(api: SomeAPI) {
// SomeAPI終了時の処理
}
上記の SomeAPI のようなクラスを複数作りたいので、共通処理は親クラスの AbstractAPI に書いています。
class…

yamamoto
- 343
- 1
- 4
- 12
4
votes
3 answers
アニメーション中のビューをタップしてイベント処理
タイトルの処理をしたいのですができずに困っていますご教授願います。
今現在、アニメーション中のviewをタップすることによりビューのカラーを変更するといった単純なプログラムを組んでいます。
アニメーションをさせることとUIGestureReconizerでのタップ処理はできましたが、アニメーション中にタップしても反応しません。
この解決策を教えていただきたいです。
検索してみると反応領域を広げるとできると書いてあったのですがイマイチイメージがつかめないのと実装ができません。
追記。。
すみません…

T.T
- 57
- 10
4
votes
1 answer
画面遷移がかなり重いです。このような場合、原因を特定するのに有効なツールなどはありますか?
NavigationControllerで、テーブルのセルをタップした時の画面遷移に2秒とかかかります。
アプリを起動したあとの初めての遷移が重いです。
CoreDataを使っていることと何か関係があるでしょうか?
このような場合、原因を特定するのに有効なツールなどはありますか?

aqua
- 1,049
- 3
- 26
- 56
4
votes
1 answer
swift Segueの種類について
swiftプログラムを行っていてSegueの違いがいまいち理解できません。
show … 現在表示されている View Controller の一階層奥に押し出す形で画面遷移
show detail … 現在表示されている View Controller を新しい View Controller に置き換える形で画面遷移
present modally … 現在表示されている View Controller の上に積み重なる形で画面遷移
popover…

Ubunkun
- 1,803
- 7
- 47
- 74
3
votes
3 answers
Swiftからシェルスクリプトを実行したい。
Swiftからシェルスクリプトを実行するにはどうしたら良いでしょうか?
尚、シェルスクリプトの実行が終了するまで、Swiftの処理は待機したいです。

ソラ君
- 149
- 9
3
votes
1 answer
c++ソースの構造体(配列)を使用したい
typedef struct {
int test;
}TESTARRAYSTRUCT;
typedef struct {
int test;
TESTARRAYSTRUCT testarray[10];
}TESTSTRUCT;
このような構造体の定義されたC++ヘッダをブリッジファイルで
インポートすることで、swiftからの参照が可能でした。
swift側で以下のように使用できましたが、
var test = TESTSTRUCT()
test.test =…

kanko
- 911
- 7
- 38
- 63
3
votes
3 answers
CGRectの上手な書き方
Swiftにおいて、CGRectを変更する場合は
let view = UIView()
view.frame = CGRect(x:0.0, y:100.0, width:200.0, height:200.0)
//widthを変更したい
view.frame = CGRect(x:0.0, y:100.0, width:300.0,…

kratos
- 362
- 1
- 7
- 18
3
votes
1 answer
UITextView をコードで生成するとキャレットの開始位置が左上とならない
UITextView のキャレットの開始位置を左上に持ってくることが目的です。
前提として言語は swift(ver 1.2)、Xcode 6.4、ターゲットはiOS 8.4です。
storyboard では画面遷移のみを定義し、xib にビューの定義(各コントロールの配置等)をして開発をしております。
UITextView を storyboard ではなく、コードもしくは xib で定義をするとキャレットの開始位置が左上ではなく、中途半端な位置に固定されてしまいます。
以下は…

K.Watanabe
- 43
- 5