Вопрос

Я искал способ установить уровень подсветки в приложении на iPhone. Я нашел здесь решение:

http://www.iphonedevsdk.com/forum/29097-post3.html

Проблема, которую у меня есть, в том, что когда я добавляю это в свое приложение, я получаю ошибку и предупреждение. Мой код заключается в следующем:

#include "GraphicsServices.h"

- (void) viewWillAppear:(BOOL)animated
{

NSNumber *bl = (NSNumber*) CFPreferencesCopyAppValue(CFSTR("SBBacklightLevel" ), CFSTR("com.apple.springboard"));
previousBacklightLevel = [bl floatValue];
//Error here : incompatible types in assignment

[bl release];   

GSEventSetBacklightLevel(0.5f);
// Warning here : implicit declaration of function 'GSEventSetBacklightLevel'

}

//...The rest of my app

- (void)applicationWillTerminate:(UIApplication *)TheNameOfMyAppIsHere
{
    GSEventSetBacklightLevel(previousBacklightLevel);
}

Я не уверен в том, что вызывает это. Я также действительно не знаю, что должно быть в моем файле .h здесь, но у меня есть:

NSNumber *previousBacklightLevel;

РЕДАКТИРОВАТЬ // Изменено

NSNumber *previousBacklightLevel 

к

float previousBacklightLevel;

как предполагалось и это отсортировало несовместимые типы в ошибке назначения.

Теперь осталось с:

«_Gseventsetbacklightlevel», ссылается из:

-

-[MyAppViewController ApplicationWillterminate] в myAppViewController.o

Символ (ы) не найден

COLLECT2: LD вернул 1 статус выхода

Не уверен, как исправить это!

Любая помощь будет оценена,

// РЕДАКТИРОВАТЬ

Все проблемы отсортированы. Спасибо всем, кто мне помог. Я действительно ценю это и не могу дождаться, пока я смогу отдать немного обратно, отвечая на некоторые вопросы.

Большое спасибо,

Стю

Это было полезно?

Решение

Причина, по которой вы получаете предупреждение, заключается в GSEventSetBacklightLevel() является частным API, не объявленным ни в одном из заголовков SDK. Если вы планируете отправить это в App Store, ваше приложение будет отклонено, если вы его позвоните. Если это предназначено для джейлбрейского устройства, вы можете просто объявить функцию самостоятельно.

void GSEventSetBacklightLevel(float level);

Причина, по которой вы получаете ошибку, заключается в том, что вы пытаетесь назначить поплавок (который является скалярным) на NSNumber *. Анкет Вы, вероятно, хотите сменить Partbacklightlevel, чтобы стать поплавком.

Другие советы

Вы можете добавить частную структуру, перетаскиваясь в проект Xcode от /Developer/Platforms/iPhoneOS.Platform/Developer/SDKS/iPhoneOS4.2.sdk/System/Library/PrivateFrameWorks/GraphicsServices.FrameWork а также импортируйте #import "GraphicsServices.h" Заголовок в вашем файле .h

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top