ok so i have an object. lets say its called TestObject. in TestObject's constructor, one of its attributes is another TestObject. so lets say i do this after i have already made the TestObject class, constructer, getter setter methods, ect. Code: TestObject *testObject1 = [[TestObject alloc]initWithTestObject:testObject2]; TestObject *testObject2 = [[TestObject alloc]initWithTestObject:testObject1]; it complies correctly but when i try to access testObject1.testObject, it comes back as null, is this because of how i am accessing the object?