Tôi vừa nâng cấp lên 4.3 Xcode mới nhất. Tôi có plist.which của tôi là preprocessed và so với 4.2 không có vẻ làm việc nữa.Xcode 4.3 - preprocess plist không hoạt động nữa cho #define với "http: //"?
Tôi đặt Info.plist other pre-processor
cờ -traditional
(để có thể bỏ qua //
được coi là nhận xét).
tôi đặt
#define MYSERVER http://127.0.0.1:1234/
và trong plist tôi
<key>myhost</key>
<string>MYSERVER</string>
Khi tôi kiểm tra trong Xcode mới 4.3 tôi thấy bên trong NSDictionary *bundle = [[NSBundle mainBundle] infoDictionary];
myhost = "http:/ /127.0.0.1:1234/"
Tôi có một cách nhanh chóng hack cho nó .
NSString *hack = [[[[NSBundle mainBundle] infoDictionary] objectForKey:@"myhost"] stringByReplacingOccurrencesOfString:@" " withString:@""];
url = [NSURL URLWithString:hack];
Điều này làm cho ứng dụng của tôi hoạt động trở lại, nhưng tôi muốn có giải pháp sạch. Bất kỳ ý tưởng?
Nhận xét trong lỗi clang nói rằng điều này là cố định (https://llvm.org/bugs/show_bug.cgi?id=12035), nhưng tính đến Xcode 7.2 nó không hoạt động đối với tôi. Tài liệu cho '-traditional' là ở đây: https://developer.apple.com/library/mac/technotes/tn2175/_index.html –