Ich benutze SetObject: forKey: um ein Objekt des Typs Rresource zu einem NSMutableDictionary namens: resourceLib hinzufügen.NSMutableDictionary Eintrag beschädigt nach dem Verlassen der Methode, wo Eintrag hinzugefügt wurde
Dann schaue ich sofort, was im Wörterbuch tatsächlich ist und es ist OK.
Wenn ich versuche, wieder in einem anderen Objekt Methode um es zu betrachten, ist der richtige Schlüssel vorhanden, aber ein Verweis auf eine String-Eigenschaft „url“ Fälle eine Liste der Fehlermeldungen einschließlich:
2016.09.28 11 : 32: 42,636 Testa [760: 16697] - [__ NSCFString url]:
@interface Rresource : NSObject
@property (nonatomic,strong) NSString* url;
@property (nonatomic,strong)NSMutableArray* resourceNotesArray;
@property(nonatomic,strong)NSString* name;
@property(nonatomic,strong)NSString* resourceUniqueID;
@property(nonatomic)BOOL isResourceDirty;
fügt diese Methode in einer Viewcontroller die Rresource zum NSMutableDictionary: unerkannt Selektor Beispiel 0x600000456350
Rresource Objekt wird definiert als gesandt
-(void)saveResource
{
Rresource* resource = self.currentResource;
Rresource* temp;
if (resource)
{
if (resource.isResourceDirty)
{
[self.model.resourceLib setObject:resource forKey:resource.resourceUniqueID];
temp = [self.model.resourceLib objectForKey:resource.resourceUniqueID];
}
}
}
Ressourcen- und Temp enthalten identische Informationen die Informationen zeigt, wurde korrekt hinzugefügt.
In der Methode des Modells verursacht das folgende die oben beschriebene Fehlermeldung.
for (Rresource* resource in self.resourceLib)
{
NSString* string = resource.url;
}
wo Modell enthält:
@property(nonatomic,strong)NSMutableDictionary* resourceLib;
und:
@implementation Model
- (instancetype)init
{
self = [super init];
if (self)
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
self.path = [[paths objectAtIndex:0] stringByAppendingString:@"/Application Support/E2"];
BOOL exists = [[NSFileManager defaultManager] createDirectoryAtPath:self.path withIntermediateDirectories:NO attributes:nil error:nil];
if (!exists)
{
[[NSFileManager defaultManager] createDirectoryAtPath:self.path withIntermediateDirectories:NO attributes:nil error:nil];
}
self.resourceLibPath = [NSString pathWithComponents:@[self.path,@"resources"]];
self.resourceLib = [[NSMutableDictionary alloc]init];
self.noteLibPath = [NSString pathWithComponents:@[self.path, @"notes"]];
self.noteLib = [[NSMutableDictionary alloc]init];
}
return self;
ich diese Frage gefunden haben eindeutig noch schwer zu fragen, nachdem sie die Formulierung mehrere Stunden zu verbringen. Ich entschuldige mich.
Ich habe so ziemlich alles für etwa eine Woche probiert. Ich bin ratlos.
Irgendwelche Ideen?
Dank
Das war es! Danke vielmals! –