ios
  • swift3
  • uiviewcontroller
  • 2017-07-05 10 views 0 likes 
    0

    Swift 3では以下のコードは動作していませんが、Swiftの以前のバージョンでは動作しています。コードarray += [attributes]では、 "バイナリ演算子 '+ ='は、UICollectionViewLayoutAttributes型とUICollectionViewLayoutAttributes型のオペランドに適用できません。"任意の提案:ここにコードされていますSwift 3のUICollectionViewLayoutAttributes型のオペランドに、バイナリ演算子 '+ ='を適用することはできません。

    override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? { 
        var array: [UICollectionViewLayoutAttributes] = [] 
        for i in 0 ... max(0, numberOfItems - 1) { 
         var indexPath = IndexPath(item: i, section: 0) 
         var attributes = layoutAttributesForItem(at: indexPath) 
         if attributes != nil { 
          array += [attributes] 
         } 
        } 
        return array 
    } 
    
    +0

    のためではないSTRING'や他のデータ型Double',Float、配列で何かを追加するために、我々はappend機能に

    を使用+ =演算子はIntのために正常に動作しますので、属性) ' –

    答えて

    1

    代わり

    array += [attributes] 
    
    +0

    私はこのアプローチを試しました。コンパイラは現在、エラーをスローします。致命的なエラー:NSArray要素がSwift Array要素の型と一致しませんでした。 –

    +0

    'var array:[UICollectionViewLayoutAttributes] = []'を 'var array:[UICollectionViewLayoutAttributes] = [UICollectionViewLayoutAttributes]()'に変更します。 – Malik

    +0

    これは機能しました。サポートに感謝します。回答済み! –

    1

    array.append(attributes) 
    

    を使用してみてくださいはarray.append(attributes)を使用してみてください。 ( `array.appendを使用してみ配列

    +0

    私はまだ試していません。私は今、エラー "オプションの値"の値を取得する "UICollectionViewLayoutAttributes?アンラップされていません "。 –

    +0

    この配列を実行する.append(属性!) –

    関連する問題