XCode中调试视图中的奇怪值

时间:2015-08-13 10:27:35

标签: c++ xcode debugging

在我的iPhone应用程序中,我将一些值(时间戳)传递给C ++库int64_t。在此之前,我将NSArray中的值(double存储为int64_t)转换为int64_t f4 = (int64_t)[arr objectAtIndex:0]; ,如.mm文件中的值:

$(document).ready(function(){

    //Get the figures width
    var figure_width = $(".project-index figure").css("width").replace("px", "");

    //Get num figures
    var num_figures = $(".project-index figure").length;

    //Work out how manay figures per row
    var num_row_figures = Math.ceil(num_figures / 2);

    //Get the total width
    var row_width = figure_width * num_row_figures;

    //Set container width to half the total
    $(".project-index").width(row_width);

    x = null;
    y = null;

    $(".project-index div").mousedown(function(e){
        x = e.clientX;
        y = e.clientY;
    });

    $(".project-index div").mouseup(function(e){
        if(x == e.clientX && y == e.clientY){
        //alert($(this).next().attr("href"));
        window.location.assign($(this).next().attr("href"));
    }
    x = y = null;
    });

});


// Drag-on content
jQuery(document).ready(function(){  
    jQuery('#main').dragOn();
});

您可以在图片上看到的问题(请参阅链接)是,显示的变量 f4 (左)的选定值与其右侧的打印值不同。此外,如果我比较变量 f1 f4 f4 应该大于 f1 ,与存储的值相关,但是它不是。 Var f1 从库中的函数返回,调试视图显示正确的值。

Screenshot

1 个答案:

答案 0 :(得分:2)

NSArray(以及所有Objective-C集合类)只能保存对象。这意味着如果您想在集合中存储数字,则需要将它们包装在NSNumber对象中。例如:

[arr addObject:@(number)];

并检索值:

int64_t value = [arr[index] longLongValue];

但是要回答这个问题,您看到的值可能是NSNumber个对象的地址,而不是其中包含的值。