2012-07-31 38 views
0

我确信我可以将该错误关闭!看看下面的代码抛出这个错误:如何在xCode中使用之前删除方法必须声明的错误

- (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 ...方法,我不想这样做。

+0

我不希望这种方法从外部调用,这就是为什么我没有在我的头文件中声明它们。同时问这个问题将增加我对如何将这些错误关闭的知识:) – azamsharp 2012-07-31 15:30:32

+0

它只会在你告诉它的时候才会调用,所以它不会由于某些外部力量在头文件中被神奇地运行。 – Jeremy1026 2012-07-31 15:31:48

+0

@ Jeremy1026即使看到这些方法,我也不想*外力*。无论如何..问题解决了! (设计一个可重用的库的原则之一是,你只能公开你希望调用者调用的方法)。类扩展是解决此问题的一种方法。另一个不是在头文件中声明它们。 – azamsharp 2012-07-31 15:35:10

回答

1

声明其作为.m文件的私有方法:

@interface AppDelegate() 

- (void)checkAndCreateDatabase; 

@end 

@interface AppDelegate 

... 
+0

尽管我的问题不同,但我会接受这个答案。我知道在某个地方有一个构建设置的属性,这将允许我使用这些方法而不使用扩展或在头文件中声明它们。 – azamsharp 2012-07-31 15:35:53

0

不应该在include和源文件中声明为私有方法吗?

相关问题