作者Blueshiva (龙野南云)
看板MacDev
标题Re: [心得] 拚字串会出现 warning的警告
时间Sat Jul 28 14:36:15 2012
※ 引述《Adonisy (堂本瓜一)》之铭言:
: 更新到新的 xcode 4.4 这个警告还是出现了
:
: 旧写法:
:
: tempstr= [[tempstr stringByAppendingFormat:
: [self returnSpace:4-[segmentedControl titleForSegmentAtIndex:1].length]]
: stringByAppendingFormat:[segMenuitemText objectAtIndex:0]];
:
: (x)
:
: 新写法
:
: tempstr=[NSString stringWithFormat:@"%@%@",
: [self returnSpace:4-[segmentedControl titleForSegmentAtIndex:1].length],
: [segMenuitemText objectAtIndex:0]];
:
: (O)
:
: --
: 昔日所为 今日所受
: 今日所为 明日所受
:
:
: --
: → appleway:warning 内容是? 07/28 01:00
: → Adonisy:大概就是说不安全之类的 07/28 01:03
不安全的原因是
NSString *evilFormat = @"%@";
NSString *brokenString = [@"Oops..." stringByAppendingFormat:evilFormat];
如果你指定的format字串是个变数,因为无法控制这变数里面是什麽,如果有人塞个
format token,那麽程式在跑的时候就会往後去找要填入的变数,就很有可能造成变
数填到不该去的地方,然後就爆炸了...
其实 NSLog() 也是一样,以前都习惯直接 NSLog(aString),现在都改用
NSLog(@"%@", aString) 比较安全。
--
Luna quieres ser madre
y no encuentras querer
que te haga mujer
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.125.33
1F:推 osnq:正解。 推一个~~~ 07/28 16:57
2F:推 fantasy0404:推~ 07/29 00:02
3F:推 aecho:推~ 07/29 15:56
4F:推 iwayne:推.. 09/28 18:57