If an object has instance variables that are just pointers to other objects (like NSString), and the variable only holds a reference, not the object itself, why does it need a type? Or why isn't its type something like "NSReference", since that's what it is?
As an example, from "iOS Programming: the Big Nerd Ranch Guide":
In item.h
#import <Foundation/Foundation.h> @interface Item : NSObject { NSString *_itemName; NSString *_serialNumber; int _valueInDollars; NSDate *_dateCreated; } @end It seems to me like each variable's type should be something like NSReference. Why are the instance variables declared as strings and date and int if they only hold references to the location of the strings and date and int, not the strings and date and int themselves?