Objective c 如何从类生成NSString函数,然后调用它?

Objective c 如何从类生成NSString函数,然后调用它?,objective-c,database,class,Objective C,Database,Class,我创建了一个子类NSObject Database,它同时创建Database.h和Database.m,我想做的是,创建一个调用数据库的类 我创建了这样的代码 #import "Database.h" @implementation Database NSString* docsDir; NSArray* dirPaths; NSString* dbsePath; NSString *getDB() { dirPaths = NSSearchPathForDirectoriesIn

我创建了一个子类NSObject Database,它同时创建Database.h和Database.m,我想做的是,创建一个调用数据库的类

我创建了这样的代码

#import "Database.h"

@implementation Database
NSString* docsDir;
NSArray* dirPaths;
NSString* dbsePath;

NSString *getDB()
{
    dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    docsDir = dirPaths[0];
    // Build the path to the database file
    dbsePath = [[NSString alloc]
                initWithString: [docsDir stringByAppendingPathComponent:
                                 @"DBUntilAgo.sqlite"]];
    NSLog(@"1!%@",dbsePath);
    return dbsePath;
}


@end
对吗?我如何从它打电话到另一个视图?请帮忙。我是Xcode新手。

这应该是您的Database.h文件

这应该是您的Database.m文件

然后让我们假设从AppDelegate.m您可以创建如下内容

#import "Database.h"

@implementation Database
NSString* docsDir;
NSArray* dirPaths;
NSString* dbsePath;

NSString *getDB()
{
    dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    docsDir = dirPaths[0];
    // Build the path to the database file
    dbsePath = [[NSString alloc]
                initWithString: [docsDir stringByAppendingPathComponent:
                                 @"DBUntilAgo.sqlite"]];
    NSLog(@"1!%@",dbsePath);
    return dbsePath;
}


@end

首先,这不是目标C语法。然后需要在.h文件中声明getDB方法,而define在.m文件中。然后你可以从任何地方实例化你的数据库对象,并对其调用getDB方法。不客气,伙计。是的,如果您使用的是最新的Xcode,默认情况下ARC应该生效。
#import "Database.h"

@implementation Database

-(NSString *)getDB {
    NSString* docsDir;
    NSArray* dirPaths;
    NSString* dbsePath;

    dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    docsDir = dirPaths[0];
    // Build the path to the database file
    dbsePath = [[NSString alloc]
                initWithString: [docsDir stringByAppendingPathComponent:
                                 @"DBUntilAgo.sqlite"]];
    NSLog(@"1!%@",dbsePath);
    return dbsePath; } 
@end
#import "AppDelegate.h"
#import "Database.h"

@implementation AppDelegate


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

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    // Override point for customization after application launch.

    Database *db=[[Database alloc] init];
    NSLog(@"%@",[db getDB]);




    //    RootNavigationController *root=[[RootNavigationController alloc] initWithRootViewController:[RootNavigationController RootViewControllerCandidate]];
    //    [root setNavigationBarHidden:YES];

    //    [self.window setRootViewController:root];

    [self.window makeKeyAndVisible];

    return YES;
}

@end