相关疑难解决方法(0)

如何摆脱GCC中从字符串常量到'char*''警告的弃用转换?

所以我正在开发一个非常大的代码库,最近升级到gcc 4.3,它现在触发了这个警告:

警告:不推荐将字符串常量转换为'char*'

显然,解决这个问题的正确方法是找到每个声明

char *s = "constant string";
Run Code Online (Sandbox Code Playgroud)

或函数调用如:

void foo(char *s);
foo("constant string");
Run Code Online (Sandbox Code Playgroud)

并使他们成为const char指针.但是,这意味着触及564个文件,最小,这不是我希望在此时执行的任务.现在的问题是我正在运行-werror,所以我需要一些方法来扼杀这些警告.我怎样才能做到这一点?

c++ string gcc

401
推荐指数
11
解决办法
41万
查看次数

抑制行特定的XCode编译器警告

Ben Gottlieb提出的问题类似,我有一些不赞成的电话让我烦恼.有没有办法按线抑制警告?例如:

 if([[UIApplication sharedApplication]
  respondsToSelector:@selector(setStatusBarHidden:withAnimation:)]) {

  [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
 } else {
  [[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]; //causes deprecation warning
 }
Run Code Online (Sandbox Code Playgroud)

我所关心的只是那条线.我不想关闭所有弃用警告.我也不愿意做一些像文件一样抑制特定警告的事情.

在其他一些情况下,即使编译器生成警告,我也希望将特定行标记为正常.我本质上想让我的团队知道问题已经处理完毕,并且一遍又一遍地停止对同一行进行窃听.

iphone xcode objective-c compiler-warnings

8
推荐指数
1
解决办法
4863
查看次数

iOS,如何禁用有关弃用方法的CERTAIN警告

我正在从iOS6迁移到iOS7,但我想保留适用于iOS6的代码,所以我的代码如下所示:

if (isiOS7orAbove) {
    sizeios7 = [text boundingRectWithSize:CGSizeMake(TEXTVIEW_WIDTH, 9999)
                options:NSStringDrawingUsesLineFragmentOrigin 
                attributes:nil context:nil];
}else{
    size = [text sizeWithFont:[self cellFont]
            constrainedToSize:CGSizeMake(TEXTVIEW_WIDTH, 9999)
            lineBreakMode:NSLineBreakByWordWrapping];
}
Run Code Online (Sandbox Code Playgroud)

但是Xcode一直警告我[text sizeWithFont...]不赞成.现在,因为我确信我的旗帜isiOS7orAbove可以处理iOS版本所以我不需要警告,因为我已经处理过它.

我不想真的禁用有关弃用方法的警告,我想要的是告诉Xcode我已经处理它,应该适用于较低版本的iOS.

那么有可能只删除[text sizeWithFont ...]的警告吗?

我想一个叫宏的东西应该这样做,#IF IOS6但我不确切知道如何.

macros warnings deprecated ios

2
推荐指数
1
解决办法
1648
查看次数