Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
Из iTunes перетащите значок вашего приложения на рабочий стол, это даст вам ссылку, которую вы можете использовать напрямую (например, http://phobos.apple.com/WebObjects /MZStore.woa/wa/viewSoftware?id=284036524&mt=8 запускает AppStore для кроссвордов (как на рабочем столе, так и на iPhone).
Вставьте это в NSURL и вызовите openURL для него.
Я понял, как попасть прямо на страницу обзора приложения в AppStore.
В основном это сделано, как показано ниже, не стесняйтесь читать мой блог пост об этом.
- (IBAction)gotoReviews:(id)sender
{
NSString *str = @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa";
str = [NSString stringWithFormat:@"%@/wa/viewContentsUserReviews?", str];
str = [NSString stringWithFormat:@"%@type=Purple+Software&id=", str];
// Here is the app id from itunesconnect
str = [NSString stringWithFormat:@"%@289382458", str];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
}
Если вы хотите показать подробности приложения вместо обзоров, вы можете использовать URL-адрес следующим образом:
NSString *appId = @"app id";
NSString *endPoint = [NSString stringWithFormat:@"phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=%@&mt=8", appId];
NSString *link = [NSString stringWithFormat:@"itms-apps://%@", endPoint];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:link]];
Я протестировал это на своем iPhone с iOS 6.1 и перенаправлю вас немедленно в приложение App Store.
Убедитесь, что в нем написано «phobos.apple.com», а не «itunes.apple.com»
Первый из них напрямую открывает App Store, а второй сначала откроет MobileSafari, а затем App Store.
Вы можете получить свой AppID на itunesconnect.apple.com «Управление своими приложениями»
Если у вас есть партнерская ссылка, и вы хотели бы по-прежнему открывать приложение App Store напрямую без Safari в середине, вы можете использовать скрытый UIWebView или NSURLConnection. Для последнего см. Этот пост http://gamesfromwithin.com/handling-app-store-and-linkshare-links
Вот код, который я использую, и протестировал его на различных упомянутых версиях iOS. Очевидно, измените идентификатор клиента на свой:
- (void)showOurAppsInAppStore
{
NSString *searchUrl = nil;
// iPad
if ([DeviceController isDeviceAnIpad]) {
searchUrl = @"itms-apps://itunes.apple.com/us/artist/seligman-ventures-ltd/id326161338";
}
// iPhone / iPod Touch
else {
// iOS 7+
if ([DeviceController isDeviceOperatingSystemAtleast:@"7.0"]) {
searchUrl = @"itms-apps://itunes.apple.com/artist/seligman-ventures-ltd/id326161338";
}
// iOS 6
else if ([DeviceController isDeviceOperatingSystemAtleast:@"6.0"]) {
searchUrl = @"itms-apps://ax.itunes.apple.com/artist/seligman-ventures-ltd/id326161338";
}
// Pre iOS 6
else {
NSString *companyName = @"Seligman Ventures";
searchUrl = [NSString stringWithFormat:@"http://phobos.apple.com/WebObjects/MZSearch.woa/wa/search?WOURLEncoding=ISO8859_1&lang=1&output=lm&country=US&term=%@&media=software", [companyName stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
}
}
[[UIApplication sharedApplication] openURL: [NSURL URLWithString:searchUrl]];
}
Если вы просто выпускаете свое приложение ... у вас еще не будет «идентификатора приложения» ... так что ни один из этих методов не будет работать.
Мне пришлось вставить «нерабочую ссылку» в мой v1.0 ..., а затем в моем обновлении v1.1 ... добавили фактическую ссылку и идентификатор приложения.
Если Вы не хотите получать ссылку для iTunes, можно сделать это.
, у меня была эта работа во время, ссылка iTunes не была бы.
Ben Gottlieb прав, но существует более быстрый способ получить URL: можно щелкнуть правой кнопкой по любому значку приложения в iTunes и выбрать "URL iTunes Store копии".
Тогда вызов UIApplication openURL
на нем.