1

取り寄せで困っています。SQL エディターで確認すると、フェッチの直前に 2 つのフィールド (整数の位置と文字列の weburl) を持つテーブル webs が空であることがわかります。ただし、フェッチ後:

NSArray * arrwebs = [managedObjectContext 
                             executeFetchRequest:allwebs error:&error];

1 つの要素があります。

"Error: (null)
2013-02-05 15:01:39.001 Assignment3-1[36607:c07] arrWwebs has 1 elements
2013-02-05 15:01:39.001 Assignment3-1[36607:c07] Postition: 0"

arrwebs は空であってはいけませんか? この前に要素を削除しました(プログラムおよびSQLエディターを介して)。

コードは次のとおりです。

-(void) logElements
{
    AppDelegate *delegate = [[UIApplication sharedApplication] delegate];    
    NSManagedObjectContext *managedObjectContext = delegate.managedObjectContext;
    NSManagedObject  *newWebs;

    newWebs = [NSEntityDescription insertNewObjectForEntityForName:@"Webs" inManagedObjectContext:managedObjectContext];

    NSFetchRequest * allwebs = [[NSFetchRequest alloc] init];
    [allwebs setEntity:[NSEntityDescription entityForName:@"Webs" inManagedObjectContext:managedObjectContext]];
    [allwebs setIncludesPropertyValues:NO]; //only fetch the managedObjectID

    NSError *error = nil;
    NSArray * arrwebs = [managedObjectContext executeFetchRequest:allwebs error:&error];

    NSLog(@"Error: %@", [error localizedDescription]);
    NSLog(@"arrWwebs has %d elements", [arrwebs count]);

    for (NSManagedObject * info in arrwebs) {
        //[managedObjectContext deleteObject:webobject];
        NSLog(@"Postition: %@", [info valueForKey:@"position"]);
        NSLog(@"URL: %@", [info valueForKey:@"weburl"]);
    }

    if (![managedObjectContext save:&error]) {
        NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
    }    
}

何か案が?

4

1 に答える 1

1

Websとしてオブジェクトを挿入していますnewWebs。ということで、期待通りの結果です。

于 2013-02-05T15:12:42.043 に答える