- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unacceptable type of value for attribute: property = "XXXXX"; desired type = NSNumber; given type = NSTaggedPointerString; value = 0.'
尝试过:[在此处输入图片描述][1]
[message setValue:localID forKey:@"local_id"];
localID 是 NSNumber 类型
数据模型图像:[1]:/image/7WTlU.png
[self insertInLocatDB:print_data entityName:@"Message_data" withPredicate:@"receiver_id" filterWith:@"unique_id"];
使用它插入 CoreData:
-(void)insertInLocatDB :(NSMutableArray *)arr_msg entityName:(NSString*)name withPredicate:(NSString*)predicateText filterWith:(NSString*)filterText
{
NSEntityDescription *entitydesc=[NSEntityDescription entityForName:name inManagedObjectContext:app.context];
NSFetchRequest *request=[[NSFetchRequest alloc]init];
[request setEntity:entitydesc];
NSInteger local_id =[self getMaxLocalId:name];
for(int i=0; i<[arr_msg count]; i++)
{
[fetched_data removeAllObjects];
NSPredicate *predicate =[NSPredicate predicateWithFormat:@"%@ like %@ ",predicateText,[[arr_msg objectAtIndex:i]objectForKey:predicateText]];
[request setPredicate:predicate];
NSError *error;
NSArray *matchingData=[app.context executeFetchRequest:request error:&error];
local_id=local_id+1;
for (NSManagedObject *obj in matchingData)
{
[fetched_data addObject:[obj valueForKey:filterText]];
}
NSString *filter=[[arr_msg objectAtIndex:i] objectForKey:filterText];
if(![fetched_data containsObject:filter])
{
NSManagedObject *message=[[NSManagedObject alloc] initWithEntity:entitydesc insertIntoManagedObjectContext:app.context];
[arr_keys setArray:[[arr_msg objectAtIndex:i] allKeys]];
[arr_values setArray:[[arr_msg objectAtIndex:i] allValues]];
[message setValue:[NSNumber numberWithInteger:local_id] forKey:@"local_id"];
for (int i=0;i<[arr_keys count];i++)
{
if( [[message.entity propertiesByName] objectForKey:[arr_keys objectAtIndex:i]] != nil
&& ([[[message.entity propertiesByName] objectForKey:[arr_keys objectAtIndex:i]] isKindOfClass:[NSAttributeDescription class]]) )
{
[message setValue:[arr_values objectAtIndex:i] forKey:[arr_keys objectAtIndex:i]];
}
}
[arr_keys removeAllObjects];
[arr_values removeAllObjects];
}
}
}
最佳答案
如果你有一个核心数据属性,如我的屏幕截图所示。
然后,以下代码片段将为您工作。
BOOL result;
NSManagedObjectContext *context = [self managedObjectContext];
// Create a new managed object
NSManagedObject *newMessage = [NSEntityDescription insertNewObjectForEntityForName:@"message"
inManagedObjectContext:context];
[newMessage setValue:[NSNumber numberWithInt:local_id] forKey:@"local_id"];
[newMovie setValue:movieName forKey:@"message"];
NSError *error = nil;
// Save the object to persistent store
result = YES;
if (![context save:&error]) {
result = NO;
NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
}
return result;
和一个获取托管对象上下文的函数
- (NSManagedObjectContext *)managedObjectContext {
NSManagedObjectContext *context = nil;
id delegate = [[UIApplication sharedApplication] delegate];
if ([delegate performSelector:@selector(managedObjectContext)]) {
context = [delegate managedObjectContext];
}
return context;
}
已编辑的 Sandhya 代码。
-(NSInteger)getMaxLocalId :(NSString*)entitiyName
{
NSEntityDescription *entitydesc=[NSEntityDescription entityForName:entitiyName inManagedObjectContext:app.context];
NSFetchRequest *request=[[NSFetchRequest alloc]init];
[request setEntity:entitydesc];
NSInteger local_id = 0;
request.fetchLimit = 1;
request.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"local_id" ascending:NO]];
NSError *error = nil;
local_id=[[app.context executeFetchRequest:request error:&error].firstObject integerValue];
return local_id;
}
然后使用下面的插入到CoreData
NSInteger local_id =[self getMaxLocalId:name];
local_id=local_id+1;
[message setValue:[NSNumber numberWithInteger:local_id] forKey:@"local_id"];
确保您获得了 local_id。
因为你有 NSInteger,对于转换你应该使用 [NSNumber numberWithInteger:]
而不是 [NSNumber numberWithInt:]
更新 2:
NSString *filter=[[arr_msg objectAtIndex:i] objectForKey:filterText];
if(![fetched_data containsObject:filter])
{
NSManagedObject *message=[[NSManagedObject alloc] initWithEntity:entitydesc insertIntoManagedObjectContext:app.context];
[arr_keys setArray:[[arr_msg objectAtIndex:i] allKeys]];
[arr_values setArray:[[arr_msg objectAtIndex:i] allValues]];
[message setValue:[NSNumber numberWithInteger:local_id] forKey:@"local_id"];
for (int i=0;i<[arr_keys count];i++)
{
if( [[message.entity propertiesByName] objectForKey:[arr_keys objectAtIndex:i]] != nil
&& ([[[message.entity propertiesByName] objectForKey:[arr_keys objectAtIndex:i]] isKindOfClass:[NSAttributeDescription class]]) )
{
if(![[arr_keys objectAtIndex:i] isEqualToString:@"local_id"]){
[message setValue:[arr_values objectAtIndex:i] forKey:[arr_keys objectAtIndex:i]];
}
}
}
[arr_keys removeAllObjects];
[arr_values removeAllObjects];
}
关于ios - 我无法将 NSNumber 数据类型的值插入到我的核心数据中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40817033/
我正在开发一些代码,其中我使用扫描仪从字符串中获取 NSNumbers,例如 x 和 y。 现在我想从 x 和 y 计算一些简单的东西,比如 z = 10.0/(x + y/60.0)/60.0)。我
第一次发帖。 NSNumber 的 floatValue 方法有问题——不知何故,它返回一个不精确的数字。问题在于:我将一堆 NSNumbers 存储在一个数组中,如下所示: NSArray *a =
我在尝试使用从基类继承的泛型函数的参数时遇到标题错误 基类: BaseBottomBar: UIView { ... func formatDetailText(value: T...
我有下面这行代码 NSNumber *myValue = loadTempValue*0.420; 我试图将 *myValue 的值设置为 loadTempValue*0.420 的值, 但是,我得到
我在将 NSNumber 转换为字符串以及将字符串转换为 NSNumber 时遇到问题。 这是一个示例问题: NSString *stringValue = @"9.2"; NSNumberForma
有一个坐标对象,具有三个变量纬度(NSNumber),经度(NSNumber)和时间(NSDate),为了在我的模拟器上检查程序,我给出了以下代码 [coordinate setLatitude:[N
简单方法:我有一个 SearchView,用户可以在其中选择一些 CoreDate,然后他可以搜索 Name、City( >NSString) 和Clientnumber (NSNumber) NSP
我转换这个 Objective-C 函数: - (NSArray *)grt_map:(id (^)(id))block { NSMutableArray *newArray = [NSMut
示例:我有一个 NSInteger,我将其包装到一个 NSNumber 对象中。现在我想要一个具有该 NSInteger 值的 NSDecimal。 那么我可以问: NSDecimal myDecim
我有这个自定义类: @interface MyModel : NSObject @property (nonatomic,strong) NSString *id_name; @property (n
在我的应用程序中,我进入 CoreData 并获取一个类型为 Double 的条目,然后我试图将该值放入我的应用程序的文本字段中。 这看起来像 lengthTextField.text = lastS
用户输入一个数字( float 或整数),并且它必须大于下限。 这是从 UITextField 获取数字的代码: NSNumberFormatter * f = [[NSNumberFormatter
我正在为 iPhone 应用程序使用 NSNumber,并看看我能用它做什么。对于我的大多数变量,我简单地将它们存储为“int”或“float”或其他类型。但是,当我必须传递一个对象(例如在字典中)时
我使用 [NSNumber numberWithDouble:] 方法来形成我的 NSNumber。但是,由于某些值可能很大,我想知道是否有办法告诉 NSNumber 用科学记数法表示自己。提前致谢!
一个 NSNumber 可以存储不同的基本类型,如short、int、long、long long、float、double 但是当我这样做时,尺寸会改变 @(long long) 相比 @(int)
我编写了一个 Objective-C 类,并且在我的 iPhone 项目中的多个 View 中使用它的共享实例。它的成员变量包括 bools、ints、NSStrings 和一个 NSNumber。共
创建一个 ARC 新项目并将此代码注入(inject)到 didFinishLaunchingWithOptions 中。 for (int i=0; i < 1000000; i++) {
我对 Objective C 比较陌生,需要一些数组帮助。 我有一个 plist,其中包含一个字典和一个 NSNumber 数组,还有更多数组可供使用稍后添加。 NSMutableDictionary
我正在尝试将 NSNumber 放入数组中: NSNumber *n = [NSNumber numberWithInt:1]; [[array objectAtIndex:0] setValue:n
我正在开发一个简单的计算器 iPhone 应用程序。只是为了练习的目的。我有一个 IBAction 方法来存储用户输入的数字。整个概念是计算器应用程序堆积待处理的操作,以便用户可以执行多个操作,并且屏
我是一名优秀的程序员,十分优秀!