Objective c 如何从类生成NSString函数,然后调用它?
我创建了一个子类NSObject Database,它同时创建Database.h和Database.m,我想做的是,创建一个调用数据库的类 我创建了这样的代码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
#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