为啥我在 Objective C 中获取 NSString 的值,例如 0xb000000000000033
Posted
技术标签:
【中文标题】为啥我在 Objective C 中获取 NSString 的值,例如 0xb000000000000033【英文标题】: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
!!
【参考方案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 觉得有帮助,点个赞吧,对别人有帮助。以上是关于为啥我在 Objective C 中获取 NSString 的值,例如 0xb000000000000033的主要内容,如果未能解决你的问题,请参考以下文章
从 TableView Objective C 中获取 IndexPath.Row [重复]