1

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.oの[MyAppViewControllerviewWillAppear:]

-MyAppViewController.oの[MyAppViewControllerapplicationWillTerminate]

シンボルが見つかりません

collect2:ldが1つの終了ステータスを返しました

これを修正する方法もわかりません!

どんな助けもいただければ幸いです、

// 編集

すべての問題がソートされました。私を助けてくれたすべての人に感謝します。私は本当に感謝しており、いくつかの質問に答えることによって、少しお返しできるまで待つことができません。

どうもありがとう、

Stu

4

2 に答える 2

5

警告が表示される理由GSEventSetBacklightLevel()は、どの SDK ヘッダーでもプライベート API が宣言されていないためです。これをアプリ ストアに送信する予定がある場合、アプリを呼び出した場合、アプリは拒否されます。これがジェイルブレイクされたデバイスの場合は、関数を自分で宣言するだけです。

void GSEventSetBacklightLevel(float level);

エラーが発生する理由は、float (スカラー) を に代入しようとしているためですNSNumber *。おそらく、previousBacklightLevel を float に変更したいと思うでしょう。

于 2009-11-22T01:46:36.163 に答える
2

/ Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/System/Library/PrivateFrameworks/GraphicsServices.frameworkから xcode プロジェクトにドラッグ アンド ドロップするだけでプライベート フレームワークを追加し、#import "GraphicsServices.h"ヘッダーをインポートすることもできます。あなたの .h ファイル

于 2011-08-04T08:03:42.437 に答える