0

我是 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=xxxx@gmail.com","Phone=8786")

有任何想法吗?提前致谢。

4

12 回答 12

3

初始化array

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

[dummyArr addObject @"Adam"];
[dummyArr addObject @"John"];
于 2013-06-04T12:32:22.333 回答
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

于 2013-06-04T12:17:30.020 回答
1

使用NSDictionaryor NSMutableDictionary:可以处理键值对

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

于 2013-06-04T12:12:19.217 回答
0
NSDictionary *dict = [[NSDictionary alloc] init];
[dict setValue:TxtUserName forKey:@"Name"];
[dict setValue:TxtEmailId forKey:@"Email"];

取回它:

[dict valueForKey:@"Name"];
于 2013-06-04T12:17:39.890 回答
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
}
于 2013-06-04T12:17:54.927 回答
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];

快乐编码!!!

于 2013-06-04T12:15:35.753 回答
0

你可以做的是:

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

或者NSMutableDictionary,如果您想更改对象,请使用。

于 2013-06-04T12:15:56.037 回答
0

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

在 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.usernameorself.username而不是简单地引用这些属性_username

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

于 2013-06-04T12:21:29.490 回答
0

首先将您的数据设置为 NSMutableDictionary ......

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

然后从 NSMutableDictionary 获取数据....

于 2013-06-04T12:28:35.930 回答
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是objective-c 的简写,[NSNumber numberWithInt:31337]并且是必需的,因为NSDictionary/NSMutableDictionary只能存储NSObject派生类。

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

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

于 2013-06-04T12:21:16.397 回答
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"];
于 2013-06-04T12:19:34.850 回答
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]);
}
于 2013-06-04T12:16:17.787 回答