2013-06-04 14 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"];