2013-02-13 3 views
1

현재 에 행 레이블 집합을 저장하고 설정을 저장하는 plist 두 번째 행을 저장하는 plist이 있습니다.iOS UITableView에서 라벨 이름으로 배열 이름을 사용하십시오.

내가 원하는 것은 새 행을 만들 때 해당 행의 이름이 array의 이름으로 저장되고 관련 설정이 배열 내에 저장된다는 것입니다.

배열 이름의 레이블을 사용할 수 있습니까? 어떻게하면 좋을까요? 텍스트 필드에 입력 된 내용을 배열로 저장하려면 어떻게해야합니까?

감사합니다,

크리스

나는 작동 코드

- (IBAction)saveViewerItems 
{ 
    // get paths from root directory 
    NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); 
    // get documents path 
    NSString *documentsPath = [paths objectAtIndex:0]; 
    // get the path to our Data/plist file 
    NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"Data.plist"]; 

    // set the variables to the values in the text fields 
    self.data = [[NSMutableArray alloc] initWithCapacity:20]; 


    // create dictionary with values in UITextFields 
    NSDictionary *plistDict = [NSDictionary dictionaryWithObjects: [NSArray arrayWithObjects: data, nil] forKeys:[NSArray arrayWithObjects: (@"%@", text), nil]]; 

    NSString *error = nil; 
    // create NSData from dictionary 
    NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:plistDict format:NSPropertyListXMLFormat_v1_0 errorDescription:&error]; 

    // check is plistData exists 
    if(plistData) 
    { 
     // write plistData to our Data.plist file 
     [plistData writeToFile:plistPath atomically:YES]; 
    } 
} 

의이 비트를 사용하여 PLIST에 배열로 저장 내 텍스트 필드를 가지고 내가이 저장됩니다 볼 수 있습니다. 이제 배열의 이름을 cellForRowAtIndexPath의 이름으로 사용해야합니다. 난 그냥 또 다른 문제를 우연히 발견 한

- 나는 그것이 PLIST에서 같은 위치에 추가합니다 새로운 항목을 추가 할 때마다 - 기존 하나를 덮어 쓰기를 .. 내가 완전히 문제를 이해하지 못했다

+0

cellForRow에서

[plistDictionary setObject:someArray forKey:textField.text]; 

등이
스토어 당신에게 배열과 같은'array'의 이름에서 레이블을해야합니까? –

+0

당신이 의미하는 바를 잘 모르겠다 - 기본적으로 plist의 Root 밑에는 사용자가 입력 한 텍스트 필드가 배열의 이름으로 저장되어야하고 테이블의 행이 그 행의 레이블을 정렬. 그걸 정리 해줄 수 있니? –

+0

@ChrisByatt이 경우 :'[plistDictionary setObject : someArray forKey : textField.text]; ' –

답변

0

. 위의 설명에서 언급 한 바와 같이 당신이 콘센트에 이름을 필요합니까

NSArray *keys = [plistDictionary allKeys]; 
cell.textLabel.Text = [keys objectAtIndex : indexPath.row] 
+0

현재이 텍스트 필드는이 코드 비트를 사용하여'plist '에 저장됩니다 –

+0

위의 추가 - 죄송합니다. –

관련 문제