1

クラス _NSObjectID_48_1 が何をするか知っている人はいますか??

わかりました、私はこれをやっています: オブジェクト Schedule の属性 (説明、日付、および個人データ) を 2 つの日付の間に取得します。これは、オブジェクト Operator とも一方向のみ (Schedule -> Operator) で関係があります。フェッチはデータを取得しますが、Operator のプロパティ ('name' など) にアクセスしようとすると、アプリがクラッシュし、「_NSObjectID_48_1」がセレクターに応答しないことが通知されます。もちろん、フェッチ中に次の行を有効にしました。

[request setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObject:entityToPrefetch]];

これは、Schedule オブジェクト全体ではなく、取得するプロパティを設定する方法です。また、データを取得するときは、「NSDictionaryResultType」として設定されます。そうしないと、データを正しく取得できないと文句を言うからです。

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Operator"
                                                      inManagedObjectContext:[AppDelegate managedObjectContext]];
            NSDictionary *relationship = [entity relationshipsByName];
            NSDictionary *entityProperties = [entity propertiesByName];
            NSArray *properties = [[NSArray alloc] initWithObjects:[entityProperties objectForKey:@"description"],
                                   [entityProperties objectForKey:@"date"],
                                   [relationship objectForKey:@"personalData"],nil];

            NSPredicate *predicate = [NSPredicate predicateWithFormat:@"date >= %@ && \
                                                                        date <= %@",
                                      [dateArray objectAtIndex:0],
                                      [dateArray lastObject]];

schedArray = "EXECUTE FETCH"

SLog(schedArray);
    SLog([schedArray objectAtIndex:0]);
    SLog([[schedArray objectAtIndex:0] objectForKey:@"employee"]);
    VoicePickOperators *employee = (VoicePickOperators *)[[schedArray objectAtIndex:0] objectForKey:@"employee"];
    SLog(employee);
    SLog([employee name]); <<------ Problem, I am trying to access an attribute that should be there but instead is of the type __NSObjectID_48_1
    SLog([employee description]);

誰がこれが起こっているのか知っていますか??

ありがとう!!

4

0 に答える 0