Решение
Решение
Для обнаружения акселерометра пользуйтесь методом isAccelerometerAvailable класса CMMotionManager. Метод isAccelerometerActive также позволяет узнать, посылает ли акселерометр в данный момент уведомления вашей программе.
Сначала убедимся, что импортировали необходимые заголовочные файлы:
#import «AppDelegate.h»
#import <CoreMotion/CoreMotion.h>
@implementation AppDelegate
Далее проверим, что присутствие акселерометра указано в файле реализации делегата нашего приложения:
— (BOOL) application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
CMMotionManager *motionManager = [[CMMotionManager alloc] init];
if ([motionManager isAccelerometerAvailable]){
NSLog(@"Accelerometer is available.");
} else{
NSLog(@"Accelerometer is not available.");
}
if ([motionManager isAccelerometerActive]){
NSLog(@"Accelerometer is active.");
} else {
NSLog(@"Accelerometer is not active.");
}
self.window = [[UIWindow alloc] initWithFrame:
[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
Итак, в устройстве с iOS, где работает ваша программа, может присутствовать акселерометр. Но это еще не означает, что акселерометр посылает уведомления вашему приложению. Если акселерометр или гироскоп посылает такие уведомления, мы говорим, что он активен (а в таком случае нам потребуется определить объект делегата, о чем поговорим чуть позже).
Если запустить этот код в эмуляторе iOS, то в окне консоли появятся примерно такие сообщения:
Accelerometer is not available. // акселерометр недоступен
Accelerometer is not active. // акселерометр неактивен
При запуске такого же кода на новом iPhone получим такие значения:
Accelerometer is available. // акселерометр доступен
Accelerometer is not active. // акселерометр неактивен
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Решение
Решение Воспользуйтесь методом dataWithJSONObject: options: error: класса
Решение
Решение Воспользуйтесь методом JSONObjectWithData: options: error: класса
Решение
Решение Внедрите в ваше приложение фреймворк Social и воспользуйтесь классом SLComposeViewController для обеспечения социального обмена сообщениями, например
Решение
Решение Воспользуйтесь классом NSXMLParser.
Решение
Решение Используйте метод экземпляра URLsForDirectory: inDomains:, относящийся к классу
Решение
Решение Все классы Cocoa, обеспечивающие сохранение информации, например NSString, UIImage и NSData, предоставляют методы экземпляра, позволяющие сохранять данные на диске по заданному
Решение
Решение Пользуйтесь методом экземпляра createDirectoryAtPath: withIntermediateDirectories: attributes: error:, относящимся к классу NSFileManager, как показано далее:— (BOOL) application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions{NSFileManager *fileManager = [[NSFileManager alloc] init];NSString *tempDir = NSTemporaryDirectory();NSString *imagesDir = [tempDir
Решение
Решение Используйте метод экземпляра contentsOfDirectoryAtPath: error:, относящийся к классу NSFileManager, как показано далее. В данном примере мы перечисляем все файлы, каталоги и символьные ссылки, расположенные в каталоге пакета с
Решение
Решение Используйте один из двух методов экземпляра, removeItemAtPath: error: или removeItemAtURL: error:, относящихся к классу NSFileManager. Первый метод принимает путь как строку, а второй — как
Решение
Решение Убедитесь, что ваш класс соответствует протоколу NSCoding, и реализуйте все необходимые методы данного протокола. Не волнуйтесь, я все подробно объясню в подразделе «Обсуждение» данного
Решение
Решение Применяйте метод класса isSourceTypeAvailable:, относящийся к классу UIImagePickerController, со значением UIImagePickerControllerSourceTypeCamera следующим образом:— (BOOL) isCameraAvailable{return [UIImagePickerController
Решение
Решение Инстанцируйте объект типа UIImagePickerController и представьте его пользователю как модальный вид в актуальном контроллере вида. Вот объявление этого контроллера
Решение
Решение Воспользуйтесь объектом UIImagePickerController с источником типа UIImagePickerControllerSourceTypeCamera и медийной информацией типа kUTTypeMovie:— (void)viewDidAppear:(BOOL)animated{[super viewDidAppear: animated];static BOOL beenHereBefore = NO;if (beenHereBefore){/* Отображаем элемент для выбора даты только после того, как вызываетсяметод
Решение
Решение Воспользуйтесь процедурой UIImageWriteToSavedPhotosAlbum:— (void) imageWasSavedSuccessfully:(UIImage *)paramImagedidFinishSavingWithError:(NSError *)paramErrorcontextInfo:(void *)paramContextInfo{if (paramError == nil){NSLog(@"Image was saved successfully.");} else {NSLog(@"An error happened while saving the
Решение
Решение Следует обеспечить обработку ошибок соединения в блоковых объектах, передаваемых вашим объектам
Решение
Решение Добавьте в главный файл. plist приложения ключ UIApplicationExitsOnSuspend и задайте ему значение true:<# Некоторые ключи и значения #><key>UIApplicationExitsOnSuspend</key><true/><# Остальные ключи и