我的应用程序中有一些代码如下所示:
char *hash = (char*) sqlite3_column_text(get_bookmark, 0);
NSString* postHash = [NSString stringWithUTF8String:hash];
这对我每次都有效,我从没见过
不
工作。我的大多数用户没有遇到问题(据我所知)。但是我发现
postHash
是空字符串(
@""
)对于一些用户来说,有时。
有人能解释为什么吗?
更多的背景/推测:
这似乎只发生在越狱手机上。他们有什么不同吗?我估计通常可用内存较少。还有什么能在这里做出贡献的吗?
波斯塔什
在表单元格中使用,偶尔会看到它被正确填充,因此我有理由相信数据库调用
应该
工作。事实上,如果数据库也有一个空字符串,那是因为有一段非常相似的代码,所以问题仍然存在。
hash
肯定返回非空值。如果我在这里强制一个空值,应用程序就会崩溃。同样地,
波斯塔什
不是
nil
因为这也会使应用程序崩溃(同样的原因)。
我想这可能与记忆有关。如果该方法试图分配过多的内存
-didReceiveMemoryWarning
可以打电话给我发生了什么?我知道,在某种程度上,跳板会弹出应用程序。但是,cocoa是否可能在这里返回一个空字符串而不是期望的值?我听说过一些报告,据我所知,这些报告只能是由于存在一个空字符串而导致的,在这个字符串中应该存在更长的内容。
欢迎任何其他的猜测、理论或想法。