IBOutlet in protocol implementaion












3















I have the following protocol:



protocol TextViewInputField {
var indexPath: IndexPath? { get set }
var textView: UITextView { get set }
var lblPlaceHolder: UILabel { get set }
func updatePHHiddenState()
}


a cell TMStyle2Cell implements this protocol as follows:



class TMStyle2Cell: UITableViewCell,TextViewInputField {

@IBOutlet var lblPlaceHolder: UILabel!
@IBOutlet var textView: UITextView!
@IBOutlet var viewSeperator: UIView!
var indexPath: IndexPath?

func updatePHHiddenState() {

}
}


Why am I getting the following error?




TMStyle2Cell does not confirm to protocol TextVeiwInputField.











share|improve this question





























    3















    I have the following protocol:



    protocol TextViewInputField {
    var indexPath: IndexPath? { get set }
    var textView: UITextView { get set }
    var lblPlaceHolder: UILabel { get set }
    func updatePHHiddenState()
    }


    a cell TMStyle2Cell implements this protocol as follows:



    class TMStyle2Cell: UITableViewCell,TextViewInputField {

    @IBOutlet var lblPlaceHolder: UILabel!
    @IBOutlet var textView: UITextView!
    @IBOutlet var viewSeperator: UIView!
    var indexPath: IndexPath?

    func updatePHHiddenState() {

    }
    }


    Why am I getting the following error?




    TMStyle2Cell does not confirm to protocol TextVeiwInputField.











    share|improve this question



























      3












      3








      3








      I have the following protocol:



      protocol TextViewInputField {
      var indexPath: IndexPath? { get set }
      var textView: UITextView { get set }
      var lblPlaceHolder: UILabel { get set }
      func updatePHHiddenState()
      }


      a cell TMStyle2Cell implements this protocol as follows:



      class TMStyle2Cell: UITableViewCell,TextViewInputField {

      @IBOutlet var lblPlaceHolder: UILabel!
      @IBOutlet var textView: UITextView!
      @IBOutlet var viewSeperator: UIView!
      var indexPath: IndexPath?

      func updatePHHiddenState() {

      }
      }


      Why am I getting the following error?




      TMStyle2Cell does not confirm to protocol TextVeiwInputField.











      share|improve this question
















      I have the following protocol:



      protocol TextViewInputField {
      var indexPath: IndexPath? { get set }
      var textView: UITextView { get set }
      var lblPlaceHolder: UILabel { get set }
      func updatePHHiddenState()
      }


      a cell TMStyle2Cell implements this protocol as follows:



      class TMStyle2Cell: UITableViewCell,TextViewInputField {

      @IBOutlet var lblPlaceHolder: UILabel!
      @IBOutlet var textView: UITextView!
      @IBOutlet var viewSeperator: UIView!
      var indexPath: IndexPath?

      func updatePHHiddenState() {

      }
      }


      Why am I getting the following error?




      TMStyle2Cell does not confirm to protocol TextVeiwInputField.








      ios swift uitableview uikit swift-protocols






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 11 '18 at 22:37









      lucascaro

      3,55111531




      3,55111531










      asked Jun 13 '17 at 10:20









      Aashish NagarAashish Nagar

      4871419




      4871419
























          2 Answers
          2






          active

          oldest

          votes


















          8














          The types in your protocol and your implementation aren't matching. You need:



          protocol TextViewInputField {
          var indexPath: IndexPath? { get set }
          var textView: UITextView! { get set }
          var lblPlaceHolder: UILabel! { get set }
          func updatePHHiddenState()
          }


          If you use weak IBOutlets, you also need to include that:



          protocol TextViewInputField {
          var indexPath: IndexPath? { get set }
          weak var textView: UITextView! { get set }
          weak var lblPlaceHolder: UILabel! { get set }
          func updatePHHiddenState()
          }


          Finally, small point, but the set part of your protocol probably isn't necessary.






          share|improve this answer



















          • 4





            You shouldn't include weak in Swift 4.1. If you do, the compiler will warn you to remove it ('weak' should not be applied to a property declaration in a protocol and will be disallowed in future versions).

            – nambatee
            Jun 22 '18 at 13:46



















          4














          Example of protocol. Tested in Swift 4.2.



          @objc protocol ImageRepresentable {
          var imageView: UIImageView! { get set }
          }


          And for view.



          class ViewA: UIView, ImageRepresentable {
          @IBOutlet weak var imageView: UIImageView!
          }


          For your case.



          @objc protocol TextViewInputField {
          var indexPath: IndexPath? { get set }
          var textView: UITextView! { get set }
          var lblPlaceHolder: UILabel! { get set }
          func updatePHHiddenState()
          }





          share|improve this answer

























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f44518737%2fiboutlet-in-protocol-implementaion%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            8














            The types in your protocol and your implementation aren't matching. You need:



            protocol TextViewInputField {
            var indexPath: IndexPath? { get set }
            var textView: UITextView! { get set }
            var lblPlaceHolder: UILabel! { get set }
            func updatePHHiddenState()
            }


            If you use weak IBOutlets, you also need to include that:



            protocol TextViewInputField {
            var indexPath: IndexPath? { get set }
            weak var textView: UITextView! { get set }
            weak var lblPlaceHolder: UILabel! { get set }
            func updatePHHiddenState()
            }


            Finally, small point, but the set part of your protocol probably isn't necessary.






            share|improve this answer



















            • 4





              You shouldn't include weak in Swift 4.1. If you do, the compiler will warn you to remove it ('weak' should not be applied to a property declaration in a protocol and will be disallowed in future versions).

              – nambatee
              Jun 22 '18 at 13:46
















            8














            The types in your protocol and your implementation aren't matching. You need:



            protocol TextViewInputField {
            var indexPath: IndexPath? { get set }
            var textView: UITextView! { get set }
            var lblPlaceHolder: UILabel! { get set }
            func updatePHHiddenState()
            }


            If you use weak IBOutlets, you also need to include that:



            protocol TextViewInputField {
            var indexPath: IndexPath? { get set }
            weak var textView: UITextView! { get set }
            weak var lblPlaceHolder: UILabel! { get set }
            func updatePHHiddenState()
            }


            Finally, small point, but the set part of your protocol probably isn't necessary.






            share|improve this answer



















            • 4





              You shouldn't include weak in Swift 4.1. If you do, the compiler will warn you to remove it ('weak' should not be applied to a property declaration in a protocol and will be disallowed in future versions).

              – nambatee
              Jun 22 '18 at 13:46














            8












            8








            8







            The types in your protocol and your implementation aren't matching. You need:



            protocol TextViewInputField {
            var indexPath: IndexPath? { get set }
            var textView: UITextView! { get set }
            var lblPlaceHolder: UILabel! { get set }
            func updatePHHiddenState()
            }


            If you use weak IBOutlets, you also need to include that:



            protocol TextViewInputField {
            var indexPath: IndexPath? { get set }
            weak var textView: UITextView! { get set }
            weak var lblPlaceHolder: UILabel! { get set }
            func updatePHHiddenState()
            }


            Finally, small point, but the set part of your protocol probably isn't necessary.






            share|improve this answer













            The types in your protocol and your implementation aren't matching. You need:



            protocol TextViewInputField {
            var indexPath: IndexPath? { get set }
            var textView: UITextView! { get set }
            var lblPlaceHolder: UILabel! { get set }
            func updatePHHiddenState()
            }


            If you use weak IBOutlets, you also need to include that:



            protocol TextViewInputField {
            var indexPath: IndexPath? { get set }
            weak var textView: UITextView! { get set }
            weak var lblPlaceHolder: UILabel! { get set }
            func updatePHHiddenState()
            }


            Finally, small point, but the set part of your protocol probably isn't necessary.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Aug 8 '17 at 23:29









            pliveseyplivesey

            1,6221914




            1,6221914








            • 4





              You shouldn't include weak in Swift 4.1. If you do, the compiler will warn you to remove it ('weak' should not be applied to a property declaration in a protocol and will be disallowed in future versions).

              – nambatee
              Jun 22 '18 at 13:46














            • 4





              You shouldn't include weak in Swift 4.1. If you do, the compiler will warn you to remove it ('weak' should not be applied to a property declaration in a protocol and will be disallowed in future versions).

              – nambatee
              Jun 22 '18 at 13:46








            4




            4





            You shouldn't include weak in Swift 4.1. If you do, the compiler will warn you to remove it ('weak' should not be applied to a property declaration in a protocol and will be disallowed in future versions).

            – nambatee
            Jun 22 '18 at 13:46





            You shouldn't include weak in Swift 4.1. If you do, the compiler will warn you to remove it ('weak' should not be applied to a property declaration in a protocol and will be disallowed in future versions).

            – nambatee
            Jun 22 '18 at 13:46













            4














            Example of protocol. Tested in Swift 4.2.



            @objc protocol ImageRepresentable {
            var imageView: UIImageView! { get set }
            }


            And for view.



            class ViewA: UIView, ImageRepresentable {
            @IBOutlet weak var imageView: UIImageView!
            }


            For your case.



            @objc protocol TextViewInputField {
            var indexPath: IndexPath? { get set }
            var textView: UITextView! { get set }
            var lblPlaceHolder: UILabel! { get set }
            func updatePHHiddenState()
            }





            share|improve this answer






























              4














              Example of protocol. Tested in Swift 4.2.



              @objc protocol ImageRepresentable {
              var imageView: UIImageView! { get set }
              }


              And for view.



              class ViewA: UIView, ImageRepresentable {
              @IBOutlet weak var imageView: UIImageView!
              }


              For your case.



              @objc protocol TextViewInputField {
              var indexPath: IndexPath? { get set }
              var textView: UITextView! { get set }
              var lblPlaceHolder: UILabel! { get set }
              func updatePHHiddenState()
              }





              share|improve this answer




























                4












                4








                4







                Example of protocol. Tested in Swift 4.2.



                @objc protocol ImageRepresentable {
                var imageView: UIImageView! { get set }
                }


                And for view.



                class ViewA: UIView, ImageRepresentable {
                @IBOutlet weak var imageView: UIImageView!
                }


                For your case.



                @objc protocol TextViewInputField {
                var indexPath: IndexPath? { get set }
                var textView: UITextView! { get set }
                var lblPlaceHolder: UILabel! { get set }
                func updatePHHiddenState()
                }





                share|improve this answer















                Example of protocol. Tested in Swift 4.2.



                @objc protocol ImageRepresentable {
                var imageView: UIImageView! { get set }
                }


                And for view.



                class ViewA: UIView, ImageRepresentable {
                @IBOutlet weak var imageView: UIImageView!
                }


                For your case.



                @objc protocol TextViewInputField {
                var indexPath: IndexPath? { get set }
                var textView: UITextView! { get set }
                var lblPlaceHolder: UILabel! { get set }
                func updatePHHiddenState()
                }






                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Nov 24 '18 at 2:25

























                answered Jul 17 '18 at 21:24









                Artem BobrovArtem Bobrov

                568




                568






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f44518737%2fiboutlet-in-protocol-implementaion%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Berounka

                    Fiat S.p.A.

                    Type 'String' is not a subtype of type 'int' of 'index'