【问题标题】:Why I am Getting value of NSString like 0xb000000000000033 in Objective C为什么我在 Objective C 中获取 NSString 的值,例如 0xb000000000000033
【发布时间】:2016-09-16 12:49:03
【问题描述】:

我是iOS 的新手,我写过这样的代码

 NSString *Mobilenumber =[firstObj valueForKey:@"MobilNo"];
    NSLog(@"Mobile Number is =%@",Mobilenumber);
    NSString *Employeeid=[firstObj valueForKey:@"EmpId"];
    NSLog(@"Employee ID is =%@",Employeeid);

手机号码给了我正确的价值,而Employeeid给了我这样的价值0xb000000000000033。但是当我NSLog Employeeid 时,它的值显示为 3。

但是当我将它与另一个文本的值进行比较时

if ([EmployeeStr isEqual:techString])

它没有达到if 条件,但两个字符串都包含相同的值。如何解决这种类型的值0xb000000000000033。

【问题讨论】:

  • 什么是firstObj
  • 可能是第一个包含@"EmpId" 的Obj 不是字符串值...所以做一件事,只需输入 NSString *Employeeid = (NSString *)[firstObj valueForKey:@"EmpId "];
  • 可能它再次返回数字,您正试图在字符串中获取empId ..
  • 您的EmpId 可能不是字符串。可能是NSNumber!!

标签: ios objective-c xcode nsstring


【解决方案1】:

可能对你有帮助

NSString *EmployeeId = [firstObj valueForKey:@"EmpId"];
NSLog(@"Employee ID is =%@",EmployeeId);
NSString *strEmployeeId = [NSString stringWithFormat:@"%@", [firstObj valueForKey:@"EmpId"]];
NSLog(@"Str Employee ID is =%@",strEmployeeId);
NSString *castEmployeeId = (NSString *)[firstObj valueForKey:@"EmpId"];
NSLog(@"Cast Employee ID is =%@",castEmployeeId);

编码愉快...

【讨论】:

    【解决方案2】:

    // 我认为您获得了该键“EmpId”的 NSNumber 对象 就这样试试吧,希望对你有用。

     NSString *Employeeid = [NSString stringWithFormat:@"%@", [firstObj valueForKey:@"EmpId"]]
    

    【讨论】:

    • 感谢您的代码工作。
    【解决方案3】:
    NSString *Mobilenumber = [NSString stringWithFormat:@"%@",[firstObj valueForKey:@"MobilNo"]];
    NSLog(@"Mobile Number is =%@",Mobilenumber);
    NSString *Employeeid=[NSString stringWithFormat:@"%@",[firstObj valueForKey:@"EmpId"]];
    NSLog(@"Employee ID is =%@",Employeeid);
    

    &然后比较它的工作......

    if ([Employeeid isEqualToString:techString])
    

    【讨论】:

      【解决方案4】:

      尝试%p 应该适用于任何指针 -

      NSString *Mobilenumber =[firstObj valueForKey:@"MobilNo"];
          NSLog(@"Mobile Number is =%@",Mobilenumber);
          NSString *Employeeid=[firstObj valueForKey:@"EmpId"];
          NSLog(@"Employee ID is =%@",Employeeid);
      NSString *address = [NSString stringWithFormat:@"%p", Employeeid];
       NSLog(@"Employee ID is =%@",address);
      

      将其转换为整数并完成剩下的工作 -

      NSUInteger myInt = [ Employeeid integerValue ];
      char * ptr       = ( char * )myInt;
      

      【讨论】:

      • 我刚刚更改了 NSString *address = [NSString stringWithFormat:@"%@", Employeeid];我工作。感谢您的帮助。
      • @Muju 觉得有帮助,点个赞吧,对别人有帮助。
      猜你喜欢
      • 2013-07-21
      • 1970-01-01
      • 2010-12-19
      • 1970-01-01
      • 1970-01-01
      • 2018-08-04
      • 2023-03-11
      • 2011-05-01
      • 1970-01-01
      相关资源
      最近更新 更多