Comparison of constant 'NSStreamEventErrorOccurred'(8) with expression of type 'NSStreamStatus' (aka...

本文介绍了在升级到iOS7后,ASIHttpRequest中的ASIDataCompressor.m类中处理枚举比较时出现的警告问题,并提供了正确的解决方法。通过将枚举比较条件从`NSStreamEventErrorOccurred`改为`NSStreamStatusError`,可以避免警告并确保代码正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

升级IOS7的项目中,ASIHttpRequest里的ASIDataCompressor.m这个类里,在

+ (BOOL)compressDataFromFile:(NSString *)sourcePath toFile:(NSString *)destinationPath error:(NSError **)err这个方法里,

以下代码会出现警告

 

iOS7在处理枚举的比较上比较特别,这句的大概意思是,把两个不同类型的枚举值进行比较。

解决方法如下:

if ([inputStream streamStatus] == NSStreamEventErrorOccurred)改为如下

if ([inputStream streamStatus] == NSStreamStatusError)

这样就OK了。

 

 

 

 

转载于:https://www.cnblogs.com/wuxiufang/p/3398502.html

Build started: Project: dht11_peizhi *** Using Compiler 'V6.19', folder: 'D:\ruanjian\Keil\ARM\ARMCLANG\Bin' Build target 'dht11_peizhi' ../Core/Src/main.c(106): warning: illegal character encoding in string literal [-Winvalid-source-encoding] OLED_ShowMixedCH(20, 16,(uint8_t*)"--><B9><DC>跃<--"); ^~~~~~~~ ../Core/Src/main.c(107): warning: illegal character encoding in string literal [-Winvalid-source-encoding] OLED_ShowMixedCH(30, 32,(uint8_t*)"<C4><E3><BA><C3>!!!"); ^~~~~~~~~~~~~~~~ ../Core/Src/main.c(142): warning: illegal character encoding in string literal [-Winvalid-source-encoding] sprintf(buff,"<CE><C2>:%d<A1><E3>C",temperature); //<D3><C3>sprintf<BD><AB><D5><FB><CA><FD><B8><F1>式<BB><AF>为<D7>址<FB><B4><AE> ^~~~~~~~ ~~~~~~~~ ../Core/Src/main.c(160): warning: 'sprintf' will always overflow; destination buffer has size 20, but format string expands to at least 21 [-Wfortify-source] sprintf(luxbuff,"lux:%d lux ",lux); //<D3><C3>sprintf<BD><AB><D5><FB><CA><FD><B8><F1>式<BB><AF>为<D7>址<FB><B4><AE> ^ ../Core/Src/main.c(170): warning: result of comparison of constant 10000 with expression of type 'uint8_t' (aka 'unsigned char') is always false [-Wtautological-constant-out-of-range-compare] if(temperature>=25||soil>=80.00||humidity>=90||lux>=10000) ~~~^ ~~~~~ ../Core/Src/main.c(227): error: use of undeclared identifier 'jw01_huart' if(huart == jw01_huart) { ^ ../Core/Src/main.c(228): error: use of undeclared identifier 'rx_buffer' JW01_DataProcess(rx_buffer); ^ ../Core/Src/main.c(229): error: use of undeclared identifier 'rx_buffer' HAL_UART_Receive_IT(huart, rx_buffer, JW01_FRAME_LEN); ^ 5 warnings and 3 errors
04-01
请根据以下compile error的测试结果修改代码:foo.cc:11:19: error: extended character ‘ is not valid in an identifier 11 | if (ch == ‘(’||ch == '['){ | ^ foo.cc:11:19: error: extended character ’ is not valid in an identifier foo.cc:18:22: warning: multi-character character constant [-Wmultichar] 18 | case '()': if (ch ==')‘)top --; | ^~~~ foo.cc:18:37: warning: missing terminating ' character 18 | case '()': if (ch ==')‘)top --; | ^ foo.cc:18:37: error: missing terminating ' character 18 | case '()': if (ch ==')‘)top --; | ^~~~~~~~~~~~ foo.cc: In function 'bool check(std::string)': foo.cc:9:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare] 9 | while (flag && i < str.size()){ | ~~^~~~~~~~~~~~ foo.cc:11:19: error: '\U00002018\U0000ff08\U00002019\U0000ff5c\U0000ff5cch' was not declared in this scope 11 | if (ch == ‘(’||ch == '['){ | ^~~~~~~~~~ foo.cc:19:22: error: expected primary-expression before 'else' 19 | else flag = false; | ^~~~ foo.cc:20:22: error: expected primary-expression before 'break' 20 | break; | ^~~~~ foo.cc:19:40: error: expected ')' before 'break' 19 | else flag = false; | ^ | ) 20 | break; | ~~~~~ foo.cc:18:31: note: to match this '(' 18 | case '()': if (ch ==')‘)top --; | ^ foo.cc:18:17: warning: case label value exceeds maximum value for type [-Wswitch-outside-range] 18 | case '()': if (ch ==')‘)top --; | ^~~~ #include<bits/stdc++.h> using namespace std; char s [301]; bool check (string str){ bool flag = true; char ch; int top = 0, i=0; while (flag && i < str.size()){ ch = str [i]; if (ch == ‘(’||ch == '['){ top ++; s[top] = ch; } else { if (top == 0) flag = false; else { switch (s [top]){ case '()': if (ch ==')‘)top --; else flag = false; break; } } } i++; } if (top > 0) flag = false; return flag; } int main (){ freopen ("check.in", "r", stdin); freopen ("check.out", "w", stdout); string str; getline (cin, str); if (check (str)) cout << "OK" << endl; else cout << "wrong" << endl; return 0; }
最新发布
07-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值