2016-11-03 7 views
-2

すべての月の配列を入力しようとしていて、スクロール可能なカレンダーに1つずつ表示しています。私はカレンダーの各ヘッダーごとに個々の "月"を返そうとしています。スウィフト文字列配列の反復機能

私は次の文字列配列を使用していますが、私が望むものに対して "String"型を返す方法は不明です。私が間違っていることに関するアイデアは?ありがとう

let months: [String] = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] 

func monthCounter(inputArray:Array<String>) -> String{ 
    for name in inputArray{ 
     return name 

    } 


} 

この関数を呼び出して、それぞれの "月"文字列を個別に表示したいと思います。

func calendar(_ calendar: JTAppleCalendarView, willDisplaySectionHeader header: JTAppleHeaderView, range: (start: Date, end: Date), identifier: String) { 


     let headerCell = (header as? MonthsHeader) 
     headerCell?.monthsHeader.text = monthCounter(inputArray: months) 
    } 
} 
+1

月のカウンタが最初に戻ってきます。つまり、1月にループが戻ってきます。 –

+0

関数のforループの後に 'String'型を返すようにしたいと考えています。どうすればいい?ありがとう –

+0

私はこのコードを使用してローカライズされた月の配列を取得します: 'let months = Calendar.current.monthSymbols' – ColGraff

答えて

-3

コードにサーバー上の問題があります。 まず、Array<String>[String]で、内部から戻ってくると繰り返しが終了します。そこで関数を呼び出すこともできますし、print("\(name)")でコードが動作しているかどうかを確認することもできます。

私のコメントで書いたように、あなたのアプローチは正しくないと思います。デリゲート関数はそのようには機能しません。たとえ1つのmonthCounter呼び出しが複数回返すことができたとしても、同じテキスト属性を何度も上書きします。月に表示されるヘッダーのパスを使用する、適切なデリゲート関数を探します。ヒントの可能性については私のコメントを見てください。

+1

'Array 'を持っても構いません。 'public struct Array :RandomAccessCollection、MutableCollection' –

+0

あなたは絶対に正しいです。 [String]は、配列の簡略版です。私はそれが奇妙だと思ったが、月の型として[String]を使用し、次に関数宣言に配列を使用した。 –

+0

Gotcha、forループブラケットの後に何を返すべきですか?ありがとう –

-2
headerCell?.monthsHeader.text = monthCounter[index of section] 
関連する問題