coredata-表单元在标视图中的位置显示错误

问题描述

表单元在标视图中的位置显示错误

DataModel.h

#import "DataModel.h"
#import <CoreData/CoreData.h>
#import "SettingsEntity.h"
#import "Constants.h"

@implementation DataModel

NSManagedObjectContext *managedObjectContextEntity;
NSManagedObjectContext *managedObjectContextMessage;
NSManagedObjectModel *managedObjectModel;
NSPersistentStoreCoordinator *persistentStoreCoordinator;
NSEntityDescription *theSettingsEntity;
NSEntityDescription *theMessagesEntity;
-(id) init
{
    NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"SOW" withExtension:@"momd"];
    managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
    NSError *error = nil;
    NSURL *storeURL = [[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject] URLByAppendingPathComponent:[Constants SQLLiteDB]];

    persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:managedObjectModel];

    if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }

    if (persistentStoreCoordinator != nil) {
        managedObjectContextEntity = [[NSManagedObjectContext alloc] init];
        [managedObjectContextEntity setPersistentStoreCoordinator:persistentStoreCoordinator];

        managedObjectContextMessage = [[NSManagedObjectContext alloc] init];
        [managedObjectContextMessage setPersistentStoreCoordinator:persistentStoreCoordinator];
    }

    theSettingsEntity = [NSEntityDescription entityForName:@"SettingsEntity" inManagedObjectContext:managedObjectContextEntity];
    theMessagesEntity = [NSEntityDescription entityForName:@"MessageEntity" inManagedObjectContext:managedObjectContextMessage];

    return self;
}
-(void) SaveSetting: (SettingsEntity *)setting
{
    NSError *error = nil;

    if (managedObjectContextEntity != nil) {
        if ([managedObjectContextEntity hasChanges] && ![managedObjectContextEntity save:&error]) {
            NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
            abort();
        }
        else {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Confirmation" message:@"Settings were saved successfully." delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil, nil];
            [alert show];
        }

    }
}

-(void) SaveMessage: (MessageEntity *)message
{
    NSError *error = nil;

    if (managedObjectContextMessage != nil) {
        if ([managedObjectContextMessage hasChanges] && ![managedObjectContextMessage save:&error]) {
            NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
            abort();
        }
    }
}

-(NSArray *) GetSettingsResult
{

    NSManagedObjectContext *context = managedObjectContextEntity;
    NSFetchRequest *request = [[NSFetchRequest alloc] init];

    [request setEntity:theSettingsEntity];

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"enteredDateTime" ascending:NO];
    NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];

    [request setSortDescriptors:sortDescriptors];

    NSArray *results = [context executeFetchRequest:request error:nil];

    return results;
}

-(SettingsEntity *) GetSettingsEntity
{
    SettingsEntity *settingsEntity = [NSEntityDescription
                                      insertNewObjectForEntityForName:[theSettingsEntity name]
                                      inManagedObjectContext:managedObjectContextEntity];
    return settingsEntity;
}

-(NSArray *) GetMessageResult
{
    NSFetchRequest *request = [self GetMessageFetchRequest];
    NSArray *results = [managedObjectContextMessage executeFetchRequest:request error:nil];

    return results;
}

-(NSFetchRequest *) GetMessageFetchRequest
{
    NSFetchRequest *request = [[NSFetchRequest alloc] init];

    [request setEntity:theMessagesEntity];

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"sentDateTime" ascending:NO];
    NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];

    [request setSortDescriptors:sortDescriptors];

    return request;
}

-(NSFetchedResultsController *)  GetMessageFetchResultsController
{
    NSFetchRequest *fetchRequest = [self GetMessageFetchRequest];
    NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContextMessage sectionNameKeyPath:@"typeMessage" cacheName:nil];
    return aFetchedResultsController;
}

-(MessageEntity *) GetMessageEntity
{
    MessageEntity *mEntity = [NSEntityDescription
                                      insertNewObjectForEntityForName:[theMessagesEntity name]
                                      inManagedObjectContext:managedObjectContextMessage];
    return mEntity;
}
@end

显示出来的 history table view结果是:

可以看见email和call的显示位置对应错误,不知道为什么?请大家帮忙解答。

解决方案

数据错位,只能是通过section 和row 取数据时,楼主没有找到对应的数据。建议楼主 将逻辑先在纸上弄清楚 然后再通过代码去显示

时间: 2024-10-26 05:43:24

coredata-表单元在标视图中的位置显示错误的相关文章

LOTUS b/s 如何在表单嵌入的视图中直接编辑视图的一列,然后保存到当前视图对应的文档

问题描述 LOTUSb/s如何在表单嵌入的视图中直接编辑视图的一列,然后保存到当前视图对应的文档 解决方案 解决方案二: 使用Lotus自己的Web视图控件,可以直接编辑和修改.

iOS 怎么获取button触点在父视图中的位置

问题描述 iOS 怎么获取button触点在父视图中的位置 场景:一个scrollview上加了一些button,现在点击button,想要通过触摸点在父视图中的位置,来设置scrollview的contentoffset属性,那么我要怎么获取点坐标呢 解决方案 CGRect frame = [self.button convertRect:self.button.bounds toView:self.scrollView]; 解决方案二: UITouch *touch = [touches a

【Android】View如何实现多个监听以及如何设置Bitmap在视图中的位置?

问题描述 [Android]View如何实现多个监听以及如何设置Bitmap在视图中的位置? 自定义了一个View,在onTouch方法里执行的是画笔涂鸦的操作,并且在这个View里面绘制了一个Bitmap.现在这个View还需要监听手势实现Bitmap两个手指缩放.拖动的操作. 1. 请问如何实现多个监听,或者两个监听该如何切换? 2. 请问如何设置Bitmap在View中的位置? 解决方案 Android OpenGL ES 教程 第一章 -- 设置视图(View)android 把view

在Excel工作表单元格中自动输入数据

为了快速输入数据,您可以让 Microsoft Office Excel 自动重复数据,或者自动填充数据. 自动重复列中已输入的项目 如果在单元格中键入的前几个字符与该列中已有的项相匹配,Excel 会自动输入其余的字符.但 Excel 只能自动完成包含文字或文字与数字的组合的项.只包含数字.日期或时间的项不能自动完成. 请执行下列操作之一: ·要接受建议的项,请按 Enter.自动完成的项完全采用已有项的大小写格式. ·如果不想采用自动提供的字符,请继续键入. ·如果要删除自动提供的字符,请按

ie11-通过写注册表文件将某个网站加入到兼容性视图中

问题描述 通过写注册表文件将某个网站加入到兼容性视图中 例如:添加信任站点可以这样设置:(IP) [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet SettingsZoneMapRangesRange113240226136] "http"=dword:00000002 ":Range"="113.240.226.136",通过想用同样的办法将该网站加入到兼容性视图网

oracle ora01792 表或视图中的最大列数为1000 。查询列数没超过1000

问题描述 oracle ora01792 表或视图中的最大列数为1000 .查询列数没超过1000 分析发现查询返回的列数只有200左右,但是jion了好多张表,我试过去掉几个jion的表,执行sql不报错了.问oracle对jion表得到的总列数有限制吗??? 解决方案 如果关联的表比较多,你可以考虑先建几个视图,通过视图去取就会避这个问题,select 允许的列可能最大为1000,这和你的oracle的版本有关系 解决方案二: ORA-01789: 查询块具有不正确的结果列数

ORA-01219:数据库未打开:仅允许在固定表/视图中查询

好久没有登陆到Oracle的服务器了,把密码都忘记了.sql>conn sys/sys as sysdba;sql>alter user system identified by *;结果出现了ORA-01219:数据库未打开:仅允许在固定表/视图中查询--想要更改密码是遇到了错误?!sql>startup;ORA-01081: 无法启动已在运行的 ORACLE --- 请首先关闭然后再sql>shutdown immediate;sql>startup;--错误依然:在执行

android-列表视图中传递int值到string值

问题描述 列表视图中传递int值到string值 TextView location=(TextView)template_view.findViewById(R.id.tvlocation); TextView weather=(TextView)template_view.findViewById(R.id.tvweather); TextView temp=(TextView)template_view.findViewById(R.id.tvtemp); TextView dewpoin

android-列表视图中突出显示其中一项

问题描述 列表视图中突出显示其中一项 在一个列表视图中想以编程的方式突出强调其中的一个项目. 我用这段代码: CalendarList = (ListView) findViewById(R.id.CalendarList);CalendarList.setAdapter(new ArrayAdapter<String>(this R.layout.list_item MyApplication.roundMatches(CalendarPicker.getValue())));Calenda