Vous ne voulez pas mettre de code qui contrôle la caméra ou l'interface utilisateur dans les sous-classes d'objets gérés. Cela casserait le modèle de conception de Modal-View-Controller et rendrait l'application un enchevêtrement. Les sous-classes d'objets gérés ne devraient concerner que des données de modélisation.
Cependant, il n'y a aucune raison pour laquelle vous ne pouvez pas avoir une sous-classe d'objet géré pour gérer un fichier de données en dehors du stockage persistant de Core Data.
Dans ce cas, vous avez des options pour stocker une image de base de données. Vous pouvez simplement stocker l'objet UIImage directement dans un attribut transformable dans n'importe quelle entité. Cependant, rend le magasin persistant énorme et peut sévèrement ralentir les récupérations. La meilleure méthode consiste à stocker l'image en tant que fichier distinct dont le chemin d'accès est stocké dans un attribut de chaîne.
Je suggère de créer une entité Image
et de personnaliser sa classe pour gérer le fichier. Utilisez une propriété transitoire pour représenter l'objet UIImage réel. Créez ensuite une classe parent abstraite pour la propriété, l'appartement et le locataire qui a une relation avec l'entité Image
. La propriété, l'appartement et le locataire héritent tous de la relation image
.
De cette façon, pour définir une image pour toute propriété, Appartement ou locataire, vous voudrais simplement utiliser:
UIImage *displayImage=aProperty.image.imageObject; //object.relationship.attribute
L'objet Image
de l'autre côté de la relation chargerait et retourner le UIImage.
Vous devez gérer cette façon en raison de la nécessité d'être la valeur clé conforme. Ainsi, chaque fois que vous définissez ou supprimez une image, les données de base mettent à jour le graphique d'objet pour refléter la modification.