我是iPhone开发的新手,我想在数组中初始化字符串,如给定的格式
-(IBAction)btnSubmit:(UIButton *)sender
{
NSString *phone = phoneNumber.text;
NSLog(@"Phone :%@",phone);
NSString *TxtUserName = userName.text;
NSString *TxtEmailId = emailId.text;
NSArray *details = [NSArray arrayWithObjects:TxtUserName,TxtEmailId,phone,nil];
}
我收到的详细信息:( “XXXXXXX”, “xxxxx@gmail.com” 7675 )
我想获取详细信息:(“Name = xxxx”,“Email = XXXxx @ gmail.com”,“Phone = 8786”)
有什么想法吗?提前谢谢。
答案 0 :(得分:3)
初始化array
,如
NSMutableArray *dummyArr = [ [ NSMutableArray alloc] init];
[dummyArr addObject @"Adam"];
[dummyArr addObject @"John"];
答案 1 :(得分:1)
使用NSDictionary
或NSMutableDictionary
:可以处理键值对
数组只能存储对象,你需要的是键值对机制
答案 2 :(得分:1)
NSDictionary就是您所需要的,但是如果您想要的是您在问题中指定的格式:
NSString *phone = NSString stringWithFormat:@"Phone=%@",phoneNumber.text];
NSLog(@"Phone :%@",phone);
NSString *TxtUserName = [NSString stringWithFormat:@"Name=%@",userName.text];
NSString *TxtEmailId = [NSString stringWithFormat:@"Email=%@",emailId.text];
NSArray *details = [NSArray arrayWithObjects:TxtUserName,TxtEmailId,phone,nil];
此处提到的其他答案涉及使用NSDictionary
/ NSMutableDictionary
的部分。
答案 3 :(得分:0)
dictMut=[[NSMutableDictionary alloc]init];
[dictMut setObject:@"xxxx" forKey:@"Name"];
[dictMut setObject:@"xxxx@gmail.com" forKey:@"email"];
[dictMut setObject:@"8786" forKey:@"phone"];
NSMutableArray *temp=[NSMutableArray alloc]init];
[temp addObject:dictMut];
快乐编码!!!
答案 4 :(得分:0)
你能做的是:
NSDictionary *dictionary = @{@"name": userName.text, @"email":emailId.text};
如果您想更改对象,请使用NSMutableDictionary
。
答案 5 :(得分:0)
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setObject:@"John" forKey:@"Firstname"];
[dict setObject:@"Doe" forKey:@"Lastname"];
[dict setObject:@"info at objectgraph.com" forKey:@"Email"];
NSLog(@"%@", dict);
NSArray *keys = [dict allKeys];
// values in foreach loop
for (NSString *key in keys) {
NSLog(@"%@ is %@",key, [dict objectForKey:key]);
}
答案 6 :(得分:0)
NSDictionary *dict = [[NSDictionary alloc] init];
[dict setValue:TxtUserName forKey:@"Name"];
[dict setValue:TxtEmailId forKey:@"Email"];
将其取回:
[dict valueForKey:@"Name"];
答案 7 :(得分:0)
虽然使用字典是一个非常好的选择,但创建用于存储用户信息的模型类会更有用。您可以创建可以处理数据的方法,以获得更多的可重用性并保持简单。
@interface User : NSObject
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *emailID;
@property (nonatomic, copy) NSString *phoneNumber;
- (id)initWithName:(NSString *)name
emailID:(NSString *)emailID
andPhoneNumber:(NSString *)phoneNumber;
创建用户实例并设置值
-(IBAction)btnSubmit:(UIButton *)sender
{
User *user = [User new];
user.name = userName.text;
user.emailID = emailId.text;
user.phoneNumber = phoneNumber.text;
//Use this instance for your work
}
答案 8 :(得分:0)
您可以将NSDictionary用于此类工作。你可以用这两种方法来做到这一点。
NSDictionary * = [NSDictionary dictionaryWithObjectsAndKeys:userName.text,@"Name",emailId.text,@"Email",phoneNumber.text,@"phone" nil];
或者你可以这样做。
NSMutableDictionary *eventData = [NSDictionary dictionaryWithObjectsAndKeys:userName.text,@"Name", nil];
[eventData setObject:emailId.text forKey:@"Email"];
[eventData setObject:phoneNumber.text forKey:@"phone"];
答案 9 :(得分:0)
尝试:
NSMutableDictionary* dict = [NSMutableDictionary new];
[dict setObject:@"Bob Jones" forKey:@"name"];
[dict setObject:@31337 forKey:@"number"];
[dict setObject:@"Turkey" forKey:@"location"];
或,简写:
NSDictionary dict = @{@"name": @"Bob Jones", @"number": @31337, @"location": @"Turkey"};
@31337
是[NSNumber numberWithInt:31337]
的Objective-c简写,因为NSDictionary
/ NSMutableDictionary
只能存储NSObject
- 派生类。
在第一个示例中,您要定义一个空白NSMutableDictionary
,然后向其中添加内容。在第二个中,您将创建一个常量,不可变,不可更改的字典,其中包含一些键和值。示例1和示例2中包含相同的数据,但您可以添加/删除第一个示例中的内容。
此外,NSMutableDictionary
是NSDictionary
的子类,这意味着您可以将其传递给接受NSDictionary
的函数。你不能反过来。
答案 10 :(得分:0)
您可以使用NSDictionary
来存储您需要的各个数据位,但您可能还想遵循MVC设计模式,这在Cocoa和Cocoa Touch框架中非常重要。
在MVC设计模式中,您尝试表示的数据是 Model ,因此,如果您正在对数据执行任何非常重要的操作,则需要创建一个或多个表示数据的对象,然后可以在您的应用程序周围传递并适当使用。
它将被声明为:
MyModel.h:
@interface MyModel : NSObject
@property (strong, readwrite) NSString *username;
@property (strong, readwrite) NSString *phoneNumber;
@property (strong, readwrite) NSString *emailAddress;
@end
在实施文件(MyModel.m
)中,您甚至不必使用@synthesize
,因为Apple认为打字过多。相反,现代clang编译器将代表您自动生成后备实例变量。请记住使用myobject.username
或self.username
而不是简单地_username
来引用这些属性。
然后,您可以考虑添加允许操作数据的方法。通过这种方式,您可以随时更改模型,而无需重新编写应用程序的重要部分,否则将依赖具有固定密钥名称的NSDictionary
,这将简化应用程序的维护。< / p>
答案 11 :(得分:0)
首先将您的数据设置为NSMutableDictionary .........
Dic=[[NSMutableDictionary alloc]init];
[Dic setObject:@"xxxx" forKey:@"Name"];
[Dic setObject:@"xxxx@gmail.com" forKey:@"email"];
[Dic setObject:@"8786" forKey:@"phone"];
然后从NSMutableDictionary ....
获取数据