Re: [心得] 拚字串會出現 warning的警告
※ 引述《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
推
07/28 16:57, , 1F
07/28 16:57, 1F
推
07/29 00:02, , 2F
07/29 00:02, 2F
推
07/29 15:56, , 3F
07/29 15:56, 3F
推
09/28 18:57, , 4F
09/28 18:57, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):