Ok, technically this question - I found an answer for it. It is to make a custom init method. In my case this means:
Person* p = [[Person alloc] initWithurlSource:[NSURL URLWithString:@"moo"] andurlDestination:[NSURL URLWithString:@"cow"] andstrBackupAmount:@"foo"];
However this still doesn't solve my problem of getting values for IBOutlets from another Class (in this case my TableViewController class) that has been exposed as @property:
@interface AppDelegate : NSObject <NSApplicationDelegate> {
.....
.....
@property (nonatomic, retain) NSPathControl* pcSource;
@property (nonatomic, retain) NSPathControl* pcDestination;
@property (nonatomic, retain) NSTextField* tfBackupAmount;
I am still having trouble getting values for these controls in my "addButtonPressed" method with:
//ad is AppDelegate - declared in interface as AppDelegate* ad;
NSPathControl* pcSource = [ad pcSource];
NSPathControl* pcDestination = [ad pcDestination];
NSTextField* tfBackupAmount = [ad tfBackupAmount];