0

我有一个UITableView来自 searchtwitter.com 的提要。我还有一个带有图像的详细信息表和UILabel. 我已经完成了所有这些工作,但我想UIButton在详细信息页面上添加一个,它将UIImage和标签保存到属性列表中。我对此很陌生;这是我到目前为止所拥有的(不工作)。

- (IBAction)SaveFriend:(id)sender
{
    NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentDirectory = [path objectAtIndex:0];

    NSString *plistPath = [documentDirectory stringByAppendingPathComponent:@"TwitterFriends.plist"]; 

    NSDictionary * tweet = [[NSDictionary alloc]init];

    NSString *text =  [tweet objectForKey:@"from_user"];
    NSString *user = [tweet objectForKey:@"from_user_name"];

    personName.text = text;
    personInfo.text = user;  

    // create dictionary with values in UITextFields
    NSDictionary *plistDict = [NSDictionary dictionaryWithObjects: [NSArray arrayWithObjects: personName, personInfo, nil] forKeys:[NSArray arrayWithObjects: @"Name", @"info", 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
        [tweet writeToFile:plistPath atomically:YES];
    }
    else 
    {
        NSLog(@"Error in saveData: %@", error);
       [error release];
    }
}
4

1 回答 1

0

不要使用 .plist,而是尝试使用 NSArray 或 NSMutableArray,然后使用 writeToFile 方法。例如:

NSMutableArray *temp = [NSMutableArray new];
[temp addObject:image];
[temp addObject:label];
[temp writeToFile:[self saveFilePath:@"filename"] atomically:YES];


//Returns the saved information path
- (NSString*) saveFilePath: (NSString *) add
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
    NSString *path = [paths objectAtIndex:0];
    NSString *filename = [path stringByAppendingPathComponent:add];
    return filename;
}
于 2012-06-22T19:17:09.350 回答