Я столкнулся с каким-то странным поведением на iPhone 6, iOS 8.3.
appVersion — это передаваемый параметр NSString*.
NSLog(@"A:%@:%d",appVersion,(int)appVersion.length);
if (!appVersion)
NSLog(@"a");
if (appVersion == 0)
NSLog(@"b");
if (appVersion == nil)
NSLog(@"c");
if (appVersion == NULL)
NSLog(@"d");
if (appVersion == Nil)
NSLog(@"e");
if ([appVersion isEqual:[NSNull null]])
NSLog(@"f");
NSString* av = [NSString stringWithFormat:@"%@",appVersion];
if ([av isEqualToString:@"(null)"])
NSLog(@"g");
if (((int)appVersion) == 0)
NSLog(@"h");
if (appVersion) {
NSLog(@"B:%@:%d",appVersion,(int)appVersion);
params[@"appversion"] = appVersion;
}
Релизная сборка приложения возвращает:
A:(null):0
g
h
B:(null):0
а затем вылетает («объект не может быть нулевым (ключ: версия приложения)»).
Отладочная сборка возвращает:
a
b
c
d
e
g
h
Что такое ноль, но не нуль?
appVersion class
- person rmaddy   schedule 18.04.2015if
в режиме выпуска. Можете ли вы создать приложение только с этим кодом, демонстрирующим проблему? - person rmaddy   schedule 18.04.2015