小编Mat*_*ate的帖子

为什么gcc会将符号添加到非调试版本中?

当我使用gcc进行发布构建时(即我没有指定-g),我似乎仍然在二进制文件中使用符号,并且必须使用strip它们来删除它们.事实上,我仍然可以断点函数并在gdb中获得回溯(尽管没有行号).

这让我感到惊讶 - 任何人都能解释为什么会这样吗

例如

#include <stdio.h>

static void blah(void)
{
    printf("hello world\n");
}
int main(int argc, char *argv[])
{
    blah();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

gcc -o foo foo.c

nm foo | grep blah:

08048374 t blah

c gcc debug-symbols

12
推荐指数
2
解决办法
8720
查看次数

自定义Android视图中的硬件加速部分失效

我的应用程序中有一个自定义视图,可以填充整个活动.

在大多数情况下,当我想刷新控件时,我调用时invalidate()没有任何参数.

但是,在某些情况下,我只是改变控件的一小块区域,我打电话invalidate(Rect)来避免重新绘制整个屏幕.这很重要,因为在这些情况下,我需要尽可能快地进行更新.

这似乎工作正常,但是,当我在Honeycomb中启用硬件加速(即android:hardwareAccelerated="true"在AndroidManifest.xml中设置 )时,部分重绘似乎不起作用.

如果我Log.d("FOO", canvas.getClipBounds())用我的onDraw()方法做的话可以看出来; 输出只显示整个控件正在更新,而禁用硬件加速,我得到正确的输出区域.

使用硬件加速时有没有办法使部分失效工作?

非常感谢,马特

android

10
推荐指数
1
解决办法
3598
查看次数

UITableViewCell和userInteractionEnabled的奇怪iOS错误

我刚刚注意到iOS上的UITableViewCell类和userInteractionEnabled属性有些奇怪.

看来如果将文本分配给单元格标签之前将userInteractionEnabled设置为NO ,则文本将显示为灰色.但是,在设置文本后将 userInteractionEnabled设置为NO会将文本颜色保留为黑色(请参阅下面的示例代码片段).

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (!cell)
       cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];

    // swap these two lines around, and the text color does not change to grey!
    cell.userInteractionEnabled = (indexPath.row % 2) == 0;
    cell.textLabel.text = @"Hello";

    return cell;
}
Run Code Online (Sandbox Code Playgroud)

这真的很烦人,因为这意味着在重用单元格的情况下,我最终会遇到不同的行为.上面的示例演示了这一点 - 表格的第一页显示了带有灰色/黑色文本的备用行.向下滚动以便细胞重复使用,您可以看到出现问题.

我只是想知道我做错了什么,或者这是一个iOS错误?我在iPad 3上看到了iOS 5.1下的问题.任何见解都非常感谢!

uitableview ios

9
推荐指数
1
解决办法
1785
查看次数

合并子上下文时的NSObjectInaccessbileExceptions

我一般了解NSObjectInaccessbileExceptions,并且需要避免尝试在另一个托管上下文/线程中删除的对象中出错.

但是,在我的用户崩溃报告中,我在将后台线程(B)中的子NSManagedObjectContext合并/保存到我的主上下文(A)时看到了NSObjectInaccessibleException,这看起来像是一个不寻常的场景.

我可以想象的唯一可能导致这种情况的情况如下:

  1. 在线程/上下文中更改对象的属性(B)
  2. 删除线程/上下文中的对象A.
  3. 保存上下文A.
  4. 保存上下文B.
  5. 将A合并到B并保存A - >异常,因为A中不存在对象

有没有人在保存这样的上下文时看到异常?我尝试手动重现,但失败了.是否有其他可能发生这种情况的情况,是否有处理此类问题的提示?

谢谢!

Fatal Exception
NSObjectInaccessibleException
CoreData could not fulfill a fault for '0x1f019da0 <x-coredata://741E65A8-C211-470E-8194-3005F0DFA71C/TrackInfo/p265>'
0   CoreFoundation  __exceptionPreprocess + 162
1   libobjc.A.dylib     objc_exception_throw + 30
2   CoreData    _PFFaultHandlerLookupRow + 1482
3   CoreData    -[NSFaultHandler fulfillFault:withContext:] + 24
4   CoreData    -[NSManagedObject(_NSInternalMethods) _updateFromRefreshSnapshot:includingTransients:] + 236
5   CoreData    -[NSManagedObjectContext(_NestedContextSupport) _copyChildObject:toParentObject:fromChildContext:] + 96
6   CoreData    -[NSManagedObjectContext(_NestedContextSupport) _parentProcessSaveRequest:inContext:error:] + 918
7   CoreData    __82-[NSManagedObjectContext(_NestedContextSupport) executeRequest:withContext:error:]_block_invoke_0 + 564
8   libdispatch.dylib   _dispatch_barrier_sync_f_slow_invoke + 96
9   libdispatch.dylib   _dispatch_client_callout + 22
10 …
Run Code Online (Sandbox Code Playgroud)

core-data ios

7
推荐指数
1
解决办法
242
查看次数

标签 统计

ios ×2

android ×1

c ×1

core-data ×1

debug-symbols ×1

gcc ×1

uitableview ×1