0

「myScheduleFullDictionary」という NSMutableDictionary を次のように設定しています。

  KEY             VALUE
"Day 1"         An NSMutableArray of NSMutableDictionaries
"Day 2"         An NSMutableArray of NSMutableDictionaries
"Day 3"         An NSMutableArray of NSMutableDictionaries

私はそれを解析しようとしています - 基本的に、キーの 1 つの値として含まれている MutableArrays の 1 つを取得します。これが私のコードです:

// First I make a mutableCopy of the entire Dictionary:
NSMutableDictionary *copyOfMyScheduleDictionary = [myScheduleFullDictionary mutableCopy];

// Next I grab & sort all the KEYS from it:
NSArray *dayKeysArray = [[copyOfMyScheduleDictionary allKeys] sortedArrayUsingSelector:@selector(compare:)];

// I set up an NSMutableArray to hold the MutableArray I want to grab: 
NSMutableArray *sessionsInThatDayArray = [[NSMutableArray alloc] init];

// Then I iterate through the KEYs and compare each to the one I'm searching for:
for (int i = 0; i < [dayKeysArray count]; i++) {

    NSString *currentDayKey = [dayKeysArray objectAtIndex:i];        
    if ([currentDayKey isEqualToString: targetDayString]) {
        NSLog(@"FOUND MATCH!!!");

        // I log out the NSMutableArray I found - which works perfectly:
        NSLog(@"found array is: %@", [copyOfMyScheduleDictionary objectForKey:currentDayKey]);

        // But when I try to actually grab it, everything crashes:
        sessionsInThatDayArray = [copyOfMyScheduleDictionary objectForKey:currentDayKey];
        break;
    }
}

私が得るエラーは次のとおりです。

-[__NSDictionaryM name]: unrecognized selector sent to instance 0x1c5fb2d0

「名前」を「認識されないセレクター」として指摘する理由がわかりません。「name」は、私が宣言して使用している「Session」クラスの NSString プロパティです。何らかの形で関連している可能性がありますか?

洞察はありますか?

編集:

これが私の「SessionObject」クラス定義です。

@interface SessionObject : NSObject


@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *speaker;
@property (nonatomic, strong) NSString *location;
@property (nonatomic, strong) NSDate *startTime, *endTime;
@property (nonatomic, strong) NSString *notes;
@property (nonatomic, strong) NSString *dayOfConference;


@end
4

2 に答える 2

1
-[__NSDictionaryM name]: unrecognized selector sent to instance 0x1c5fb2d0

これは、 class のオブジェクトで呼び出す必要がnameある場所を呼び出そうとしていることを意味します。orのようなものを呼び出している行を確認し、is がタイプであり、 notであるかどうかを確認します。NSMutableDictionarySessionObjectmyObject.name[myObject name]myObjectSessionObjectNSMutableDictionary

ここで__NSDictionaryMNSMutableDictionaryタイプを示します。

于 2013-02-21T01:16:10.833 に答える