我构建了一个与iPhone应用程序一起使用的简单mac数据输入工具.我最近添加了使用简单绑定通过Image Well添加的缩略图.它是一种可转换的数据类型,似乎工作正常.
但iPhone应用程序不会显示图像.该属性不为null但我无法显示图像.以下是cellForRowAtIndexPath
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
NSManagedObject *entity = nil;
if ([self.searchDisplayController isActive])
entity = [[self filteredListContent] objectAtIndex:[indexPath row]];
else
entity = [fetchedResultsController objectAtIndexPath:indexPath];
cell.textLabel.text = [entity valueForKey:@"name"];
//cell.imageview.image = [UIImage imageNamed:@"ImageB.jpeg"]; //works fine
cell.imageView.image = [entity valueForKey:@"thumbnail"];//no error, but no file
return cell;
Run Code Online (Sandbox Code Playgroud)
我正在考虑问题是可转换的(我使用的是默认的NSKeyedUnarchiveFromData),或者我是如何调用缩略图的.我是新手,所以任何帮助都将不胜感激.
我正在使用Core Data编写我的第一个综合应用程序,我想看看跟踪各种对象更改/更新/删除的最佳方法是什么.例如,我有一个Notes实体和一个Location实体,以及它们之间的一对一关系,这个想法是每个音符都可以标记其位置.然后我有一个带有fetchedResultsController的UITableView驱动笔记列表(你可以添加新笔记并在其中附加日期和位置),但是我有2个其他视图控制器,一个带有地图视图,另一个带有日历视图.地图视图将获取位置中的所有位置并将其显示在地图上.日历视图基本上再次从Notes获取所有数据,并在日历视图中显示它.如何在日历和地图视图中跟踪Notes和Location的更改?在viewDidLoad中很容易将它们加载一次,但是我应该如何跟踪所有更改,以便当用户重新访问mapview时(例如)他/她也会看到最新数据.
我解读的一种方法是在地图视图和日历视图中监听NSManagedObjectContextObjectsDidChangeNotification中的通知.这似乎从托管上下文返回所有插入,删除和更新的对象,每次都有保存.然后我可以浏览这些对象,看看是否需要更新我的视图.这就是我在考虑这样做的方式:
在MapViewController viewDidLoad中:
[[NSNotificationCenter defaultCenter]
addObserver: self
selector: @selector(objectChangedNotificationReceived:)
name: NSManagedObjectContextObjectsDidChangeNotification
object: context];
Run Code Online (Sandbox Code Playgroud)
然后:
- (void) objectChangedNotificationReceived: (NSNotification *) notification
{
NSArray* insertedObjects = [[notification userInfo]
objectForKey:NSInsertedObjectsKey] ;
NSArray* deletedObjects = [[notification userInfo]
objectForKey:NSDeletedObjectsKey] ;
NSArray* updatedObjects = [[notification userInfo]
objectForKey:NSUpdatedObjectsKey] ;
NSLog(@"insertObjects: %@", [insertedObjects description]);
NSLog(@"deletedObjects: %@", [deletedObjects description]);
NSLog(@"updatedObjects: %@", [updatedObjects description]);
for (NSManagedObject *obj in insertedObjects) {
if ([obj class] == [Location class]) {
NSLog(@"adding a new location");
Location *locationObj = (Location *) obj;
[self.mapview …Run Code Online (Sandbox Code Playgroud) core-data objective-c nsmanagedobject nsmanagedobjectcontext
我有两个自定义NSManagedObject类:Notes和Tags.
当我覆盖类中的isEqual:函数时,Tags我收到如下错误消息:
实体'标签'的'类'标签'具有非法覆盖NSManagedObject -isEqual:'
为什么会这样?
我的问题类似于:创建NSManagedObject派生类时出现问题
我在Core Data中设置了一个NSManagedObject,并为它设置了一个类.但是,我不想创建一个相同的NSObject类,而是想使用NSManagedObject类,但我不想创建实体并保存它.我只想将它用于数组,只有当我需要在Core Data中保存对象时我才想使用它insertEntity:
Store*store = [[Store alloc] init];
它给了我以下错误: CoreData: error: Failed to call designated initializer on NSManagedObject class 'Store'
有没有办法让子类或以某种方式使用NSManagedObject类/属性来分配我刚刚临时用于表的对象?
谢谢.
我有一个NSManagedObject的子类,我想添加几个ivars来跟踪一些簿记.我不希望这些变量持续存在,因此我不将它们作为数据模型的一部分包含在内.
我无法找到正确的方法.
而且我应该做在我的NSManagedObject子类所有的定制,或者我应该创建我的子类的子类,因此,如果我改变我的数据模型,我不会失去我的所有自定义时,我得到的Xcode生成我的NSManagedObject子类自动?
谢谢!
我的核心数据模型中有一个实体,如下所示:
@interface Selection : NSManagedObject
@property (nonatomic, retain) NSString * book_id;
@property (nonatomic, retain) NSString * contenu;
@property (nonatomic, retain) NSNumber * page_id;
@property (nonatomic, retain) NSNumber * nbrOfOccurences;
@property (nonatomic, retain) NSString * next;
@property (nonatomic, retain) NSString * previous;
Run Code Online (Sandbox Code Playgroud)
我创建了很多Selections并将它们保存在Core Data中,现在我想删除一些带有一些标准的选择.例如,Selection如果匹配以下内容,我想删除一个对象:
content = test
page_id = 5
book_id = 1331313
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?
我尝试扩展NSManagedObject.使用XCode我创建了MyBox.m和MyBox.h(直接来自xcdatamodel文件).
然后我修改了这些文件:
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@interface MyBox : NSManagedObject
@property (nonatomic, retain) NSDate * endDate;
@property (nonatomic, retain) NSNumber * globalId;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSDate * startDate;
-(NSString *)sayHello;
@end
Run Code Online (Sandbox Code Playgroud)
和
#import "MyBox.h"
@implementation MyBox
@dynamic endDate;
@dynamic globalId;
@dynamic name;
@dynamic startDate;
-(NSString *)sayHello {
return @"hello";
}
@end
Run Code Online (Sandbox Code Playgroud)
我可以获取所有myBoxes
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"MyBox" inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSMutableArray *myBoxes = [context executeFetchRequest:fetchRequest error:&error];
Run Code Online (Sandbox Code Playgroud)
但后来我打来电话
MyBox …Run Code Online (Sandbox Code Playgroud) 哎呀,对不起这么长的头衔.
我有一个托管对象上下文,我存储从两个不同位置派生的歌曲.我从手机上的持久存储中获取了一些歌曲(使用Core Data),我从在线数据库中提取了一些歌曲.这两首歌都属于同一个MananagedObject子类.我想这两个歌曲是在一个单一的情况下,因为我想他们两个出现在与NSFetchedResultsController连接的表视图.
当我想保存其中一首歌时会出现问题.我不想将从在线数据库中提取的所有歌曲保存到手机中.我只想保存单曲,所以简单的[moc save]不起作用.另一个问题是,在我保存单曲之后,我仍然希望从在线播放的歌曲在上下文中(但是再次,不保存).我相信我有几个不同的选择:
1)是否可以将NSFetchedResults控制器连接到多个上下文?
2)我可以将从在线数据库中提取的所有歌曲移动到单独的临时上下文中,保存在原始上下文中,然后将所有歌曲移回.(请参阅:如何将NSManagedObject从一个上下文复制或移动到另一个上下文?)
3)记住在线歌曲的所有键值对,从上下文中删除在线歌曲,保存原始上下文,根据保存的键值对将所有在线歌曲插回到原始上下文中.
4)我是一个巨大的n00b,我更容易丢失一些东西.
谢谢!
core-data nsfetchedresultscontroller nsmanagedobject nsmanagedobjectcontext ios
想知道是否有其他人遇到过这个问题,或者是否有原因并且我做错了什么.
我有一个CoreData应用程序.在模式中,我有一个'content'实体,其'unlocked'属性设置为Boolean.
但是,当我通过Xcode保存实体的Obj C类时,解锁在content.h中显示为:
@property (nonatomic, retain) NSNumber * unlocked;
Run Code Online (Sandbox Code Playgroud)
如果我在content.h中将其更改为布尔值,我会收到ARC编译错误.但是,如果我在尝试获取它时将其作为NSNumber对象保留,它会不一致地返回(如果我有一个NSLog打印它,它会在每次运行时返回不同的值).
我可以找出一个相当明显的解决方法,将解锁为NSString设置为"是"或"否"并在相关点进行比较,但我想知道是否有人知道为什么会发生这种情况或者是否有办法将它保持为布尔值.
提前致谢.
我有大约10000个实体对象' Message'.当我添加一个新的' Message'我想首先看它是否存在 - 以及它是否只是更新它的数据,但如果它不创建它.
现在,"查找或创建"算法可以将所有Message对象保存objectID在一个数组中,然后通过它们进行过滤并获取消息existingObjectWithID:error:
这工作正常,但在我的情况下,当我使用existingObjectWithID:获取'消息'时,然后尝试通过设置'消息'对象的属性并调用保存来设置和保存属性:在它的上下文中它不能正确保存它.有没有人遇到这样的问题?
是否有更有效的方法来制作查找或创建算法?
cocoa-touch core-data objective-c nsmanagedobject nsmanagedobjectcontext
nsmanagedobject ×10
core-data ×9
objective-c ×6
ios ×4
iphone ×2
cocoa-touch ×1
imageview ×1
ios4 ×1