我只是在学习Objective-C,并且我确信这是一个非常基本的问题。 这是我创建的一个函数,可以简单地保存来自某些用户输入的变量。
- (void)standardDatabaseWithName:(NSString*)name
host:(NSString*)host
username:(NSString*)username
password:(NSString*)password
database:(NSString*)database
port:(NSInteger*)port {
NSString *myName = name;
NSString *myHost = host;
NSString *myUsername = username;
NSString *myPassword = password;
NSString *myDatabase = database;
NSInteger *myPort = port;
}
下面是一个单独的函数,我想用这些信息创建一个新的var,并且从那里使用它就是我需要的。
- (void)insertStandardConnection {
NSString name = [NewDbModalView standardDatabaseWithName:myName];
NSString host = [NewDbModalView standardDatabaseWithName:myHost];
}
所以这次尝试对我不起作用。伙计们有什么建议吗?在这一点上,我一直在挠头。
答案 0 :(得分:2)
我建议创建一个对象来保存所有这些信息,然后只传递对象
答案 1 :(得分:0)
每次调用方法时,都必须提供所有变量:
[NewDbModalView standardDatabaseWithName:myName host:myHost username:aUsername password:aPassword database:aDatabase port:aPort];
因此,当您致电[NewDbModalView standardDatabaseWithName:myName]
时,该方法不存在。
答案 2 :(得分:0)
您在standardDatabaseWithName:...
中声明的变量是该方法的本地变量。您需要在对象内存储(副本)该数据。虽然,看看你的代码,我想知道你是否想设置默认值?在这种情况下,您可能希望静态全局变量获取值,然后您需要-(void)standardDatabaseWithName:...
成为+(void)setStandardDatabaseName:(NSString *)name ...
。
答案 3 :(得分:0)
在你的.h文件中,你应该声明属性
@interface standardDatabaseWithNameObject : NSObject{
NSString *myName;
NSString *myHost;
NSString *myUsername ;
NSString *myPassword;
NSString *myDatabase;
NSInteger *myPort;
}
@property (nonatomic, retain) NSString *myName;
@property (nonatomic, retain) NSString *myHost;
@property (nonatomic, retain) NSString *myUsername ;
@property (nonatomic, retain) NSString *myPassword;
@property (nonatomic, retain) NSString *myDatabase;
@property (nonatomic, retain) NSInteger *myPort;
etc...
然后在您的实现中,您需要合成属性,它们将可供使用:
@synthesize myName, myHost, myUsername, myPassword, myDatabase, myPort;
- (void)standardDatabaseWithName:(NSString*)name
host:(NSString*)host
username:(NSString*)username
password:(NSString*)password
database:(NSString*)database
port:(NSInteger*)port {
myName = name;
myHost = host;
myUsername = username;
myPassword = password;
myDatabase = database;
myPort = port;
}
- (void)insertStandardConnection {
NSString name = myName;
NSString host = myHost;
}
- (void) dealloc
{
[myName release];
[myHost release];
[myUsername release];
[myPassword release];
[myDatabase release];
[myPort release];
}
祝你好运