−100
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
{
//replace common symbols...
[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"&" withString:@"and"]];
[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"!" withString:@""]];
[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"#" withString:@""]];
[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"$" withString:@""]];
[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"%" withString:@""]];
[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"^" withString:@""]];
[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"*" withString:@""]];
[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"(" withString:@""]];
[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@")" withString:@""]];
[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"+" withString:@""]];
[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"=" withString:@""]];
[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"|" withString:@""]];
[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"\\" withString:@""]];
[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"?" withString:@""]];
[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@">" withString:@""]];
[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"<" withString:@""]];
[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@";" withString:@""]];
[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@":" withString:@""]];
[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"@" withString:@""]];
// ...
}
Так-то.
Источник: https://sourceforge.net/p/wineskin/code/ci/master/tree/Wineskin%20Winery/Wineskin_WineryAppDelegate.m
P. S. А тулза, между прочим, нужная. Наткнулся на багу, полез фиксить. Увидев AppDelegate.m на 2700+ строк, заинтересовался, и не зря: вышеприведенное — мелочи.
Запостил:
UncleAli,
03 Мая 2013
Вот за что я и люблю Эппловские SDK: stringByReplacingOccurrencesOfString...
[/offtopic]
Да, это не шутки, а суровая действительность.
Да обжептив сам по себе говнецо.
Ничего не понимаю. Им дали Dylan - пиши, не хочу. Хочу сишкоблядствовать. Что такое?
А так да, надмножество полностью обратно совместимое с Си ни в коёй мере не является сишкоблядством.
И то только из-за первой строчки, конечно.
правильно, просто блядством.
Поэтому городить там кучу всего очень сооблазнительно (ибо он, фактически, знает все про всех). Но получится говнокод. Поэтому так не делают.
Всю логику приложения. Эта тулза, по сути, - один большой AppDelegate.m
А в замечательном MainMenu.xib сверстано 8 окон.
и оба правильные
fascinating ))