Ios 一个奇怪的64位问题

Ios 一个奇怪的64位问题,ios,32bit-64bit,Ios,32bit 64bit,我的代码: - (void)keyboardWillShow:(NSNotification *)notification { NSDictionary *userInfo = [notification userInfo]; NSValue *aValue = [userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey]; CGRect keyboardRect = [aValue CGRectValue];

我的代码:

- (void)keyboardWillShow:(NSNotification *)notification {

    NSDictionary *userInfo = [notification userInfo];

    NSValue *aValue = [userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey];

    CGRect keyboardRect = [aValue CGRectValue];

    float keyboardHight=keyboardRect.size.height;
}
我在这一行做一个断点(
float keyboardHight=keyboardRect.size.height;
),然后打印这些变量和结果:

Printing description of userInfo:
{
    UIKeyboardAnimationCurveUserInfoKey = 7;
    UIKeyboardAnimationDurationUserInfoKey = "0.25";
    UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {320, 216}}";
    UIKeyboardCenterBeginUserInfoKey = "NSPoint: {160, 676}";
    UIKeyboardCenterEndUserInfoKey = "NSPoint: {160, 460}";
    UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 568}, {320, 216}}";
    UIKeyboardFrameChangedByUserInteraction = 0;
    UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 352}, {320, 216}}";
}
Printing description of aValue:
NSRect: {{0, 568}, {320, 216}}
Printing description of keyboardRect:
(CGRect) keyboardRect = origin=(x=3.0491553029449835E-314, y=5.6817549271743353E-322) size=(width=3.0509261527954335E-314, height=3.0491551606540775E-314)
为什么
[aValue CGRectValue]
返回错误的结果。
它可以在iphone5c上运行,但不能在iphone5s上运行。任何想法都可以。谢谢。

我听上去不可能。您是否尝试了NLog(@“keyboardRect=%@”、NSStringFromCGRect(keyboardRect)?NSLog(@“keyboardRect=%@)、NSStringFromCGRect(keyboardRect)打印正确的结果,但NSLog(@“keyboardRect h=%f”、keyboardRect.size.height)是“keyboardRect h=0”