0

コア データから最新の NSdate エントリを取得しようとしています。私がそうしようとしている方法は、日付でソートしてobjectAtIndex. ただし、結果を取得するのに苦労しており、として返されnilます。NSDate *obj = [results objectAtIndex:0];修正方法はわかりませんが、問題が発生していると思います。どんな提案も歓迎します。私はマークからかなり外れている可能性があるので、そうであればすみません。

- (void)viewDidLoad
{
    [super viewDidLoad];
    //Get Reference to App Delegate
    SSAppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
    NSManagedObjectContext *context = [appDelegate managedObjectContext];
    //Fetch Entity
    NSFetchRequest *request = [[NSFetchRequest alloc]
                              initWithEntityName:@"RecentDetails"];
    //Sort By Date
    NSSortDescriptor *sort = [[NSSortDescriptor alloc]initWithKey:@"date" ascending:NO];
    [request setSortDescriptors:[NSArray arrayWithObject:sort]];
    //Store In Array
     NSArray *results = [context executeFetchRequest:request error:NULL];

/////////////NEEDS EXTRA HERE ACCORDING TO COMMENTS


    //Find Object at Index 0
    NSDate *obj = [results objectAtIndex:0];
    //Set Batch Size
    [request setFetchBatchSize:1];

    //NSDate Formatter
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"ddMMyyyy"];

    //Convert to string
    NSString *stringFromDate = [dateFormatter stringFromDate:obj];

    //Test Log
    NSLog(@"Latest Date! %@", stringFromDate);

}
4

1 に答える 1

1
  • 挿入するときは、次のように変更します。

    NSManagedObjectContext *recentDetails = [NSEntityDescription insertNewObjectForEntityForName:@"RecentDetails"inManagedObjectContext:context];
    

    に:

    NSManagedObject *recentDetails = [NSEntityDescription insertNewObjectForEntityForName:@"RecentDetails"inManagedObjectContext:context];`
    
  • Stakenborg が指摘したように、取得するときは、「RecentDetails」のエンティティ オブジェクトから日付プロパティを取得する必要があります。

  • [request setFetchBatchSize:1]の前に設定する必要があり[context executeFetchRequest:request...]ます。そうしないと、取得される RecentDetails オブジェクトの量に影響しません。

于 2013-07-17T12:48:54.967 に答える