Format string is not a string literal (potentially insecure)

Warning:  Format string is not a string literal (potentially
insecure)

[objc] view plaincopy

  1. NSString * str = nil;
  2. str = [NSString stringWithFormat:@"---%d---", 18] ;
  3. NSLog(str);

解决1:

[objc] view plaincopy

  1. NSLog(str,nil);

解决2:

[objc] view plaincopy

    1. NSLog(@"%@", str);

Format string is not a string literal (potentially
insecure)

时间: 2024-10-08 15:58:06

Format string is not a string literal (potentially insecure)的相关文章

解决编译时出现的警告:format string is not a string literal (potentially insecure)

NSLog([NSString stringWithFormat:@"%@/%@B.jpg", createDir, uuid]);//这是我的写法 应该写成 NSString *str = [NSString stringWithFormat:@"%@/%@B.jpg", createDir, uuid]; NSLog(@"%@",str);

java String.getBytes()编码问题——String.getBytes(charset)

String的getBytes()方法是得到一个字串的字节数组,这是众所周知的.但特别要注意的是,本方法将返回该操作系统默认的编码格式的字节数组.如果你在使用这个方法时不考虑到这一点,你会发现在一个平台上运行良好的系统,放到另外一台机器后会产生意想不到的问题.比如下面的程序: class TestCharset {  public static void main(String[] args) {  new TestCharset().execute();  }  private void ex

java中String s="abc"及String s=new String("abc")详解

1.   栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. 2.   栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器.但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性.另外,栈数据可以共 享,详见第3点.堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不再使用的数据.但缺点是,由于要 在运行时动态分配内存,存取速度较慢. ==是判断

'hello world', String('hello world'), new String('hello world')

http://www.queness.com/post/9806/5-missing-javascript-number-format-functions 这篇文章介绍5种常用的数字转换格式 但是里面有一个小小的不好的编程习惯 就是在把数字转成字符串的时候 使用了 var s = new String(xxx) 这在 JSLint 中报错  Do not  use String as a conctruct https://jslinterrors.com/do-not-use-a-as-a-c

collection.toArray(new String[0])中new String[0]的作用

new string[0]的作用 比如:String[] result = set.toArray(new String[0]); Collection的公有方法中,toArray()是比较重要的一个. 但是使用无参数的toArray()有一个缺点,就是转换后的数组类型是Object[]. 虽然Object数组也不是不能用,但当你真的想用一个具体类型的数组,比如String[]时,问题就来了.而把Object[]给cast成 String[]还是很麻烦的,需要用到这个: String[] str

String s="abc"及String s=new String("abc")详解

一.相关知识点 1.   栈(stack)与堆(heap)都是Java用来在Ram(随机存取存储器)中存放数据的地方, 栈数据可以共享. 2.   栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器.缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性. 堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不再使用的数据.缺点是,由于要在运行时动态分配内存,存取速度较慢. 3.   ==是判断两个对象是否是同一个对象即引用地址:equa

java的String和android的String有什么区别?

这是今天阿里电话面试被问到的,在之前确实没有想过(一直以为是一样的),于是面试完之后,我马上打开了源码,对这两个String类进行了比较,下面是我的发现. 首先我观察了这两个String类所导入的包,发现两者有些差异: 这是android版本: import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; import java.nio.CharBuffe

深入解析字符串的比较方法:“==”操作符;String.Equals方法;String.Compare方法;String.CompareOrdinal方法。

1:要判断2个字符串变量是否相等,最高效的方法是看它们是否指向相同的内存地址.前面使用RefernceEquals方法来比较.如果2个变量指向的是不同的内存地址,那么就需要逐字符的比较2个字符串的变量,才能确认它们是否相等.由于逐字比较会花费大量的时间,降低性能.所以.NET提供了String.Equals方法来优化比较过程该方法能自动地完成引用比较和值比较. string str1="abc"; string str2="abc"; string str3=Str

String s;和String s=null;和String s="a";有什么区别?

String s;和String s=null;和String s="a";有什么区别?   针对这三种情况,使用out.println(s);的时候,第一个会出现异常,第二个会输出null.第三个则会输出a.   这是为什么呢?这三句声明语句,各自作了什么呢? 答: 第一个只是定义了一个String类型变量s,并没有给它赋初值,在Java中,默认在使用一个变量的时候必须赋予它初值(降低风险). 第二个和第三个都定义了String类型变量s,并赋予它初值,只不过第二个赋予的值为null