質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

1143閲覧

外部のファイルに書き出した関数からswitchで配列を取ってきたい

oyasumi

総合スコア13

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

1グッド

0クリップ

投稿2018/06/05 09:37

前提・実現したいこと

swift初心者です。
別のファイルに定義した関数に値を飛ばして
switch文から該当する配列を取得したいです。

該当のソースコード

HogeViewControllerから送られてきたジャンルのindexの番号を取得して
外部のファイルに書き出したswitch文から配列を取得したいです。

HashtagViewController.swift

swift

1 override func viewDidLoad() { 2 super.viewDidLoad() 3 4 //AppDelegateのインスタンスを取得 5 let appDelegate:AppDelegate = UIApplication.shared.delegate as! AppDelegate 6 //取得した値を格納 7 let genreindex = appDelegate.genreIndex 8 9 let hashtags: [String] = HashtagIndex.hashtagIndex(genreIndex: genreindex!) 10 print(HashtagIndex.hashtagIndex(genreIndex: genreindex!)) 11 12 }

HashtagIndex.swift

swift

1 class func hashtagIndex(genreIndex:Int) { 2 print(genreIndex) 3 //case文で送られてきたgenre配列のindexからハッシュタグのデータを振り分ける 4 switch genreIndex { 5 case 0: 6 let hashtags: [String] = ["petit biscuit","trinix","ODESZA"] 7 case 1: 8 let hashtags: [String] = ["chocolate","creem","candy"] 9 case 2: 10 let hashtags: [String] = ["Germany","US","Italy","Korea"] 11 default: 12 let hashtags: [String] = ["Germany","US","Italy","Korea"] 13 } 14 15 } 16 17 18
nikorasunakeizi👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

HashtagIndex.swift

swift

1class HashtagIndex { 2 3 class func hashtagIndex(genreIndex:Int) -> [String] { 4 print(genreIndex) 5 var hashtags: [String] 6 //case文で送られてきたgenre配列のindexからハッシュタグのデータを振り分ける 7 switch genreIndex { 8 case 0: 9 hashtags = ["petit biscuit","trinix","ODESZA"] 10 case 1: 11 hashtags = ["chocolate","creem","candy"] 12 case 2: 13 hashtags = ["Germany","US","Italy","Korea"] 14 default: 15 hashtags = ["Germany","US","Italy","Korea"] 16 } 17 return hashtags 18 } 19 20} 21

投稿2018/06/05 09:58

編集2018/06/05 10:37
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oyasumi

2018/06/05 10:17

すみません。説明不足でした。 配列を取得したいのはHashtagViewController.swiftの方です。
退会済みユーザー

退会済みユーザー

2018/06/05 10:19

これで、HashtagViewController.swiftの方で対応した配列取得できませんか? 私が勘違いしてるのどこ?
oyasumi

2018/06/05 10:52

申し訳ないです。ちゃんと確認できてませんでした。取得できました!この場合case文の中でletの定義をせずに返り値だけを定義するのですね。。勉強不足でした。ありがとうございました!
退会済みユーザー

退会済みユーザー

2018/06/05 10:58

先に進めばなによりです。 書き方はいろいろあると思いますが、殆ど書いてあったので修正しただけです。 スコープ{}の中で定義したものはそのスコープの外に出ると消滅しますので、returnと同じレベルのところで定義としました。
oyasumi

2018/06/06 03:16

ありがとうございます!助かりました。。!なるほど。事前に初期値を指定しておけばスコープ外に持ち出せるのですね。初歩的なこともしっかり理解できていなくてお恥ずかしい限りです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問