我使用setObject:forKey:將類型爲Rresource的對象添加到名爲resourceLib的NSMutableDictionary中。NSMutableDictionary條目在離開添加條目的方法後已損壞
然後,我馬上看看字典中的內容,這沒關係。
當我嘗試它再跑到其他對象的方法,正確的關鍵是存在的,但一個字符串屬性的引用「URL」情況下的錯誤消息列表包括:
2016年9月28日11 :32:42.636種皮[760:16697] - [__ NSCFString URL]:無法識別的選擇發送到實例0x600000456350
Rresource對象被定義爲:在一個的ViewController
@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;
這種方法增加了Rresource到的NSMutableDictionary
-(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];
}
}
}
資源和臨時包含表示已正確添加的信息相同的信息。
在model的方法中,以下將導致上述錯誤消息。
for (Rresource* resource in self.resourceLib)
{
NSString* string = resource.url;
}
其中模型包含:
@property(nonatomic,strong)NSMutableDictionary* resourceLib;
和:
@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;
我發現這個問題很難甚至花費數小時制定之後要問清楚。我道歉。
我已經嘗試了幾乎所有的一切約一個星期。我很難過。
任何想法?
感謝
這是它!非常感謝! –