Skip to Content

@IBOutlet property cannot have non-'@objc' class type 'FUITextFieldFormCell'

Hi everyone,

while trying to upgrade to SCP SDK for iOS v 4.0 I've encountered the following problem: components that I've used directly with interface builder are now throwing an error, saying that they are not '@objc' compliant anymore. This is the case of FUITextFieldFormCell and FUISwitchFormCell. Other components like FUIValuePickerFormCell are still working as expected.

I believe it's a bug on the build. Has anyone come across something similar? Here are some pictures:

FUITextFieldFormCell and FUISwitchFormCell are generating errors

Using a custom class from Interface Builder on my text field

FUITextFieldFormCell generating error, while FUIValuePickerFormCell working as expected.

Add a comment
10|10000 characters needed characters exceeded

Related questions

3 Answers

  • Posted on Oct 15, 2019 at 01:49 PM

    Hi Jesse, I just tried and it works for me. Make sure you imported the frameworks correctly.

    The latest version of the SDK is SAP Cloud Platform SDK for iOS (Xcode 11) 4.0 SP00 PL00

    Try to delete the framework files and re-import them manually in Xcode (not with the assistant)

    thanks

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Oct 15, 2019 at 04:43 PM

    Sorry Jesse, my mistake, I was on SDK 3.2.7 and I have the same errors as you,

    we tried the SDK 4 but found to many bugs, we decided to stay on 3.2.7 until SAP supplied a stable version

    thanks

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Oct 21, 2019 at 09:48 PM

    Jesse Moraes Braga Alexandre Giguere this is an Xcode issue, where it rejects UIView subclasses which utilize non-objc Swift Generics. This in our view is a failure of Interface Builder.

    There is a lame workaround, which is to bind your @IBOutlet to a UIView, then introduce a computed property which returns that view, cast to the cell type.

    @IBOutlet var dummyPhoneCell: UIView!

    var phoneCell: FUITextFieldFormCell {

    return dummyPhoneCell as! FUITextFieldFormCell

    }

    But in general, I would say: do this programmatically.

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.