Re: [心得] 拚字串會出現 warning的警告

看板MacDev作者 (龍野南雲)時間13年前 (2012/07/28 14:36), 編輯推噓4(400)
留言4則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《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
文章代碼(AID): #1G4uXYea (MacDev)
文章代碼(AID): #1G4uXYea (MacDev)