0

私はどこかでそのエラーを消すことができると確信しています! このエラーをスローする次のコードを見てください。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    NSString *databaseName = @"TasksDB.db";

    NSArray *documentsDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentsDirectoryPath = [documentsDir objectAtIndex:0];

    databasePath = [documentsDirectoryPath stringByAppendingPathComponent:databaseName];

    [self checkAndCreateDatabase];

    // Override point for customization after application launch.
    return YES;
}


-(void) checkAndCreateDatabase 
{

}

checkAndCreateDatabase が認識されないというエラーがスローされます。これは、インターフェイス ファイルで checkAndCreate... メソッドを宣言しておらず、宣言したくないためでもあります。

4

3 に答える 3

1

ファイル内でプライベートメソッドとして宣言し.mます。

@interface AppDelegate ()

- (void)checkAndCreateDatabase;

@end

@interface AppDelegate

...
于 2012-07-31T15:31:29.657 に答える
0

インクルード ファイルとソース ファイルでプライベート メソッドとして宣言すべきではありませんか?

于 2012-07-31T15:30:04.727 に答える
0

.m ファイルの先頭にクラス拡張を作成し、そこで宣言します。これにより、公開されたインターフェイスから除外されます。

(クラス拡張は本質的に空のカテゴリですが、ストレージ宣言に関する特別な規則があります: http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/objectivec/chapters/occategories.html )

于 2012-07-31T15:30:25.587 に答える