Property cannot be found in forward class object
This error usually points out that Xcode can not recognize your symbol.
I can assume this is DTContact.
Try to insert this in your .h file:
#import DTContact.h
Property 'data' could not be found in forward class object
What is the name of the class you're trying to access data
on? You probably just need to import the .h file into the class from which you're accessing it.
Something like this:
#import "ClassName.h"
Alternately you have to make sure the property is exposed. If data
isn't forward facing, i.e. it isn't declared in the header file, then you shouldn't be accessing it anyway.
Property cannot be found on forward class object?
It doesn't know what type of object the layer
property is. Add #import <QuartzCore/QuartzCore.h>
to the top of your file.
Property 'frame' cannot be found in forward class
You usually get this message if you only did a forward declaration of a class, like
@class MyPhantasticClass;
The compiler knows that it is a class, but doesn't know any of it's methods. You need to include the right header file.
Swift ViewModel properties can't access in ObjC
If you want to be able to access properties of a class inside the implementation file of an Objective-C class, you need to import the header of the class. Simply forward declaring the class by doing @class YourClass
only makes the type itself visible, but it doesn't expose its properties/methods.
Since Swift files don't have headers, you need to import the Swift header of your module.
So in your ListViewController.m
do
#import <YourModule/YourModule-Swift.h>
Property 'frame' cannot be found in forward class object 'CALayer'
Select Project File-->Target-->Build Phases
Then add QuartzCore.framework
And use below import in your file
#import <QuartzCore/QuartzCore.h>
Objective C: Properties Not Found In Forward Declaration Vs Parse Issue: Expected A Type
You haven't made it clear where exactly you're doing the imports vs @class
. And I think that's causing confusion. Here's what you want to do:
- In GardenView.h, use
@class Plant
- In Plant.h, use
@class GardenView
- In GardenView.m, use
#import "Plant.h"
- In Plant.m, use
#import "GardenView.m"
This breaks the circular dependency in the headers, but still allows the implementations to see the full information of the dependent class.
Now the reason why @class
alone isn't sufficient is because all @class Foo
does is it tells the compiler "There exists a class named Foo", without telling it anything at all about the class. The compiler doesn't know its methods. It doesn't know its superclass. All it knows is if it sees the token Foo
, then that represents a class type. You can use this in header files so you can refer to the class in arguments and return types, but in order to actually do anything with values of that type you still need the full #import
. But you can put that #import
in the .m file without any problem.
The only time you need #import
instead of @class
in your header is if you want to inherit from the class in question. You cannot inherit from forward-declared classes, so you need the full #import
. Of course, you may also need the #import
if you need access to other types defined in the same header (e.g. structs, enums, etc.), but that's less common in obj-c.
Related Topics
Flutter:Not Connecting to iOS Simulator in Android Studio
How to Get Uitouch Location from Uigesturerecognizer
Why Are Animations on Bounds of an Uilabel Only Working When Increasing the Size
How to Make Camera Follow Sknode in Sprite Kit
Firinstanceid/Warning Stop!! Will Reset Deviceid from Memory [Xcode:Console Log]
How to Play a Video from Either a Local or a Server Url in iOS
How to Control Hardware Mic Input Gain/Level on Iphone
How to Set Accessibility Identifier in Interface Builder? Xcode4.2
Is There Any Limitation to Distribution of Apps in iOS Enterprise Program
How to Change the App Store's Large Icon on Itunes Connect
Encryption with Rsa Public Key on iOS
Push View Programmatically in Callback, Swiftui
Importing Swift Framework into a Objective-C Project
Status Bar Visible on iPad Mini Despite Setting Uiviewcontrollerbasedstatusbarappearance to No