Where does objc_ivar exist for data of instance members of oc instance objects? objc_object?

  ios, question

Definition of class

struct objc_class {
 Class isa;
 
 Class super_class;
 const char *name;
 long version;
 long info;
 long instance_size;
 struct objc_ivar_list *ivars;
 struct objc_method_list **methodLists;
 struct objc_cache *cache;
 struct objc_protocol_list *protocols;
 bracket
 
 struct objc_ivar {
 char *ivar_name;
 char *ivar_type;
 int ivar_offset;
 bracket
 
 struct objc_ivar_list {
 int ivar_count;
 /* variable length structure */
 struct objc_ivar ivar_list[1];
 bracket

Is the definition of a field stored in the ivars list?

Definition of Instance

typedef struct objc_object {
 Class isa;
 } *id;

There is only one member (pointer to the class to which it belongs), so where is his field data?

The initialization data of the objects are all placed in the heap, and the member variable pointers of the instance objects are all in objc_ivar_list * ivars. the objects find the corresponding memory to fetch the data through the pointers. is this understandable