2013-06-04 16 views
0

我是新iPhone的发展,我想初始化字符串数组,如给定的格式ios - 如何用名称初始化一个数组?

-(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”, “[email protected]” )

我想细节:(“NAME = XXXX”, “[email protected]”, “手机= 8786”)

任何想法?提前致谢。

+0

使用NSDictionary – MadhuP

+1

如果您想要在运行时添加/删除条目,请使用“NSMutableDictionary”。 –

+0

我正在添加答案检查出来.... – Jitendra

回答

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的一部分。

+0

感谢您宝贵的回复..... – user2439531

1

使用NSDictionaryNSMutableDictionary:可以处理键值对

阵列只能存储对象,你需要的是键值对机制

+1

+1 NSDictionary将允许您使用键值pairs.https://developer.apple。com/library/mac /#documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/Reference/Reference.html – theiOSDude

0

你可以做象下面...

dictMut=[[NSMutableDictionary alloc]init]; 
      [dictMut setObject:@"xxxx" forKey:@"Name"]; 
      [dictMut setObject:@"[email protected]" forKey:@"email"]; 
      [dictMut setObject:@"8786" forKey:@"phone"]; 


      NSMutableArray *temp=[NSMutableArray alloc]init]; 
      [temp addObject:dictMut]; 

快乐编码!

0

你可以做的是:

NSDictionary *dictionary = @{@"name": userName.text, @"email":emailId.text}; 

或者使用NSMutableDictionary如果你想改变的对象。

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]); 
} 
0
NSDictionary *dict = [[NSDictionary alloc] init]; 
[dict setValue:TxtUserName forKey:@"Name"]; 
[dict setValue:TxtEmailId forKey:@"Email"]; 

把它找回来:

[dict valueForKey:@"Name"]; 
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 
} 
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"]; 
0

尝试:

NSMutableDictionary* dict = [NSMutableDictionary new]; 

[dict setObject:@"Bob Jones" forKey:@"name"]; 
[dict setObject:@31337 forKey:@"number"]; 
[dict setObject:@"Turkey" forKey:@"location"]; 

OR,速记:

NSDictionary dict = @{@"name": @"Bob Jones", @"number": @31337, @"location": @"Turkey"}; 

@31337是Objective-C的简写为[NSNumber numberWithInt:31337]和需要,因为NSDictionary/NSMutableDictionary只能存储NSObject派生类。

在第一个示例中,您将定义一个空白NSMutableDictionary,然后向其中添加东西。在第二部分中,您将创建一个常量,不可变,不可更改的字典,其中包含一些键和值。例1和例2具有相同的数据,但可以从第一个例子中添加/删除东西。

此外,NSMutableDictionaryNSDictionary的子类,这意味着您可以将它传递给接受NSDictionary的函数。你不能以其他方式施放。

0

您可以使用NSDictionary这将允许您存储您需要的各个数据位,但您可能还想遵循MVC设计模式,这在Cocoa和Cocoa Touch框架中非常重要。

在MVC设计模式中,您试图表示的数据是模型,所以如果您要对数据做任何不重要的事情,您将希望创建一个或多个表示数据的对象,然后可以通过你的应用程序并适当地使用。

这则声明是这样的:

MyModel.h:

@interface MyModel : NSObject 

@property (strong, readwrite) NSString *username; 
@property (strong, readwrite) NSString *phoneNumber; 
@property (strong, readwrite) NSString *emailAddress; 

@end 

在实现文件(MyModel.m),你甚至不必使用@synthesize这些天,因为苹果认为是打字太多。相反,现代clang编译器会自动生成支持实例变量。请记住使用myobject.usernameself.username而不是简单的_username来引用这些属性。

然后,您可以考虑添加允许操作数据的方法。通过这种方式,您可以让您的模型随时间变化,而无需重新编写应用程序的重要部分,否则这些部分依赖于带有固定键名称的NSDictionary,这将简化应用程序的维护。

0

首先设置你的数据的NSMutableDictionary .........

Dic=[[NSMutableDictionary alloc]init]; 
      [Dic setObject:@"xxxx" forKey:@"Name"]; 
      [Dic setObject:@"[email protected]" forKey:@"email"]; 
      [Dic setObject:@"8786" forKey:@"phone"]; 

然后得到的NSMutableDictionary数据....

3

初始化array

NSMutableArray *dummyArr = [ [ NSMutableArray alloc] init]; 

[dummyArr addObject @"Adam"]; 
[dummyArr addObject @"John"];