title: CellForItematIndexPath cannot set variable
body: <p>I've got a variable in a UICollectionViewCell that I'm testing at the moment... here's my cellforitem</p>
  
  <pre><code>func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -&gt; UICollectionViewCell {
      let c = collectionView.dequeueReusableCell(withReuseIdentifier: chatCellId, for: indexPath) as! ChatCell
      c.userDidSend = (indexPath.item % 2 == 0) ? true : false
      return c
  }
  </code></pre>
  
  <p>In the ChatCell class, I initialize the variable using <code>var userDidSend: Bool?</code>
  , however whenever I test the variable, it always returns nil. Below is where the variable is being tested for each cell.</p>
  
  <pre><code>override func setupViews() {
      super.setupViews()
  
      if userDidSend == true {
          setupSentChat()
      } else if userDidSend == false {
          setupRecievedChat()
      }
  
      print(userDidSend)
  }
  </code></pre>
  
  <p>Asides from this particular issue, everything works fine.
  Thoughts?</p>
  
  <p><strong>EDIT:</strong>
  setupViews is called when the cell view is initialized.</p>
  
  <pre><code>override init(frame: CGRect){
      super.init(frame: frame)
      setupViews()
  }
  </code></pre>