Hi Julian,
Yes, what you want is possible, but I know that it's not currently stated in the SCObjectSelectionAttributes documentation. We'll fix that in our upcoming release, and we'll add additional constructors to SCObjectSelectionAttributes that will make it really easy to achieve what you want.
As for now, all you need to do is pass on the array of States to the "items" property of SCObjectSelectionAttributes (inherited from SCSelectionAttributes) in the "Customer" class definition. Here is a code sample:
...
SCClassDefinition *customerClassDef =
[SCClassDefinition definitionWithClass:[Customer class]
withPropertyNames:[NSArray arrayWithObjects:@"customerName", @"state", nil]];
SCPropertyDefinition *statePropertyDef = [customerClassDef propertyDefinitionWithName:@"state"];
statePropertyDef.type = SCPropertyTypeObjectSelection;
SCObjectSelectionAttributes *objSelectionAttr = [[SCObjectSelectionAttributes alloc] init];
objSelectionAttr.items = myStateObjectsArray;
objSelectionAttr.itemsTitlePropertyName = @"stateName"; // the name property in the State object
objSelectionAttr.allowMultipleSelection = NO;
statePropertyDef.attributes = objSelectionAttr;
[objSelectionAttr release];
...
Please tell me if you need any more help.