Ios 由于未捕获异常而终止应用程序';RLMEException';,原因:';无效值';1973906';类型为';NSTaggedPointerString';对于';int';王国

Ios 由于未捕获异常而终止应用程序';RLMEException';,原因:';无效值';1973906';类型为';NSTaggedPointerString';对于';int';王国,ios,objective-c,realm,Ios,Objective C,Realm,如果我将属性定义为字符串 @Property NSString * value; 由于未捕获的异常“RLMEException”而终止应用程序,原因: “字符串”的“\u NSCFNumber”类型的“1993654”值无效 或者如果定义为整数 @Property NSInteger value; 由于未捕获的异常“RLMEException”而终止应用程序,原因: “int”的“NSTaggedPointerString”类型的“1973906”值无效 在这两种情况下,应用程序都崩溃了 事

如果我将属性定义为字符串

@Property NSString * value;
由于未捕获的异常“RLMEException”而终止应用程序,原因: “字符串”的“\u NSCFNumber”类型的“1993654”值无效

或者如果定义为整数

@Property NSInteger value;
由于未捕获的异常“RLMEException”而终止应用程序,原因: “int”的“NSTaggedPointerString”类型的“1973906”值无效

在这两种情况下,应用程序都崩溃了

事故报告

*** Terminating app due to uncaught exception 'RLMException', reason: 'Invalid value '1973906' of type 'NSTaggedPointerString' for 'int?' property 'MMCase.Id'.'
*** First throw call stack:
(
    0   CoreFoundation                      0x00007fff23b98bde __exceptionPreprocess + 350
    1   libobjc.A.dylib                     0x00007fff503b5b20 objc_exception_throw + 48
    2   Realm                               0x000000010ad75659 _Z17RLMThrowTypeErrorP11objc_objectP15RLMObjectSchemaP11RLMProperty + 617
    3   Realm                               0x000000010ad766bb _Z27RLMValidateValueForPropertyP11objc_objectP15RLMObjectSchemaP11RLMPropertyb + 3659
    4   Realm                               0x000000010ab63576 _ZN18RLMAccessorContext18value_for_propertyEP11objc_objectRKN5realm8PropertyEm + 214
    5   Realm                               0x000000010abd70af _ZN5realm6Object6createIU8__strongP11objc_object18RLMAccessorContextEES0_RT0_RKNSt3__110shared_ptrINS_5RealmEEERKNS_12ObjectSchemaET_bbmPNS_8BasicRowINS_5TableEEE + 431
    6   Realm                               0x000000010abd8595 RLMCreateObjectInRealmWithValue + 1477
    7   Realm                               0x000000010ab62c18 _ZN18RLMAccessorContext5unboxIN5realm12BasicRowExprINS1_5TableEEEEET_P11objc_objectbbbm + 296
    8   Realm                               0x000000010ab745cd _ZN5realm12_GLOBAL__N_112ValueUpdaterIU8__strongP11objc_object18RLMAccessorContextEclEPNS_12BasicRowExprINS_5TableEEE + 157
    9   Realm                               0x000000010ab735ef

您应该尝试使用
NSNumber*值取而代之。您发布的第一个例外情况
\uu NSCFNumber
指出了这一点。从那里你可以使用

[value stringValue];

要创建它,您可以使用范例:

value = [NSNumber numberWithInt: intValue];

通过使用NSNumber而不是NSIntger修复

使用


取决于类型。

您似乎混合了Int和String。有些值在某种情况下是无效的。你能不能把崩溃的代码包括进来,并指出是哪一行导致了崩溃?实际上,您可能试图将无效或零数据存储到var中,这将导致崩溃。请稍等片刻,回顾一下我也尝试使用NSNumber和NSNumber异常“RLMException”,原因是:“属性“Id”需要定义包含类型的协议-例如:NSNumber。“您可以发布使用NSNumber获得的崩溃吗?”添加了相关的崩溃报告。再次检查。您的代码中是否有getId或类似的内容?对于MMCase类,您必须发布类和它的用法,因为仅凭提供的信息几乎不可能判断问题
value = [NSNumber numberWithInt: intValue];
@property NSNumber<RLMInt> *value
@Property NSInteger value;