我使用Twitter-OAuth-iPhone在我的应用中同步消息。它在iOS4中没问题。
升级到 iOS5 后,选择菜单'产品'> “分析”,并收到一些警告。
在 NSData + Base64.m 中,它警告''&'的左操作数是一个垃圾值'
代码:
if( ixinbuf == 4 ) {
ixinbuf = 0;
outbuf [0] = ( inbuf[0] << 2 ) | ( ( inbuf[1] & 0x30) >> 4 );
outbuf [1] = ( ( inbuf[1] & 0x0F ) << 4 ) | ( ( inbuf[2] & 0x3C ) >> 2 );
outbuf [2] = ( ( inbuf[2] & 0x03 ) << 6 ) | ( inbuf[3] & 0x3F );
for( i = 0; i < ctcharsinbuf; i++ )
[mutableData appendBytes:&outbuf[i] length:1];
}
还有其他错误消息:
对不起,我是新手,对这些问题一无所知 你能帮我解决一下吗? 非常感谢!
编辑------------
逻辑循环截图:
删除死亡的ImageShack链接
感谢任何建议!
答案 0 :(得分:22)
通过将inbuf初始化为空char数组来回避它:
unsigned char inbuf[4] = {};
unsigned char outbuf[3];
答案 1 :(得分:2)
哦,非常很好。
Clang在这里告诉你的是,在某些非常具体的情况下,你最终可能永远不会初始化inbuf[1]
。我相信这可能会发生在输入上,如下所示:
a=
此处还指出了另一个主要问题 - inbuf
和outbuf
的尺寸互换。应为char inbuf[4], outbuf[3]
,反之亦然。
答案 2 :(得分:0)
您可以添加if语句以确保inbuf[x]
中包含某些值
if (sizeof(inbuf[1]) > 0x1) outbuf [0] = ( inbuf[0] > 4 ); if (sizeof(inbuf[2]) > 0x1) outbuf [1] = ( ( inbuf[1] & 0x0F ) > 2 ); if (sizeof(inbuf[3]) > 0x1) outbuf [2] = ( ( inbuf[2] & 0x03 )
我不确定它是否是“万无一失”。