通过plist表查看部分

时间:2014-10-29 23:27:22

标签: ios objective-c uitableview plist

创建一个plist来存储单词及其定义的最佳方法是什么,然后用于填充按字母顺序划分为多个部分的表视图,每个单元格都指向一个详细视图。 我有我的桌子和plist连接,并了解如何获取细节视图与准备segue。我的问题是plist布局,然后使用它为节头标题和获取单词对应正确的字母。

过去两天已经花费了超过30页的谷歌多次搜索。我看过像谓词这样的术语,但我很困惑。

我不希望有人对其进行编码,但一系列步骤将成为救星。我担心没有分区会导致糟糕的使用经验。

2 个答案:

答案 0 :(得分:1)

请按照下面的说明进行操作。

1.创建PList并提供相关名称

2.做以下事情

   Key     Type         Value

   Root    Array        (2 items)

 ->Expend the arrow of root (to below-down) direction

   Item 0    Dictionary   (2 items)

 ->Expend the arrow of Item 0 (to below-down) direction->Click + and add the below things

   Name      String       First Section Name

   List      Array        (1 items)

 ->Expend the arrow of List (to below-down) direction->Just Click + for adding item 0

   Item 0     Dictionary   (6 items)

 ->Expend the arrow of  Item 0  (to below-down) direction ->Click + and the below things

   Name      String      EnterName

   Value     String     

   Key       String      Name

  UIType     String     TextField

  InputType  String      Text

  Mandatory   Boolean    YES

 Then  if you click the root there is +.Just click the + and you can see the Item 1

   Key     Type           Value

   Root    Array          (2 items)

  Item 0    Dictionary    (2 items)

  Item 1    Dictionary    (2 items)

  ->Expend the arrow of root (to below-down) direction

   Item 1    Dictionary   (2 items)

 ->Expend the arrow of Item 1 (to below-down) direction-Click + and add the below things

   Name      String       Second Section Name

   List      Array        (1 items)

 ->Expend the arrow of List (to below-down) direction-Just Click + for adding item 0

   Item 0     Dictionary   (6 items)

 ->Expend the arrow of  Item 0  (to below-down) direction-Click + and the below things

   Name      String      Enter Age

   Value     String     

   Key       String      Age

  UIType     String     TextField

  InputType  String      Text

  Mandatory   Boolean    YES

3.然后将NSObject类名称创建为PList。

in .h

  #import <Foundation/Foundation.h>

  @interface PList : NSObject

  + (NSMutableArray *)arrayPlistInit:(NSString *)plistName;

 @end

in .m

  +(NSMutableArray *)arrayPlistInit:(NSString *)plistName

  {

    NSString *stringPath = [[NSBundle mainBundle]pathForResource:plistName ofType:@"plist"];

    NSMutableArray *arrayPlist = [NSMutableArray arrayWithContentsOfFile:stringPath];

    return arrayPlist;

  }

4.in viewDidLoad

  arrayTable = [PList arrayPlistInit:stringPlistName];

5.然后viewForHeaderInSection

 1.Create the Custom Label and View(see the below the Coding in viewForHeaderInSection)

            UILabel *labelSection;

            UIView  *viewSection = [[UIView alloc]init];

            viewSection.frame = CGRectMake(0, 0, tableviewCreate.frame.size.width, 20);

            labelSection = [[UILabel alloc]init];

            labelSection.textAlignment = NSTextAlignmentLeft;

            labelSection.frame = CGRectMake(10, 5, tableviewCreate.frame.size.width, 20);

            [labelSection setBackgroundColor:[UIColor clearColor]];

            [labelSection setFont:[UIFont boldSystemFontOfSize:15]];

            NSString *name = [[arrayTable objectAtIndex:section] objectForKey:@"Name"];

            labelSection.text = name;

答案 1 :(得分:0)

用这些模糊的细节很难回答这个问题,但我会尝试。特别是不知道你是如何将这些单词存储在plist中的。

但假设您只是在该plist中存储字符串,那么只需读取整个文件,然后抓取所有单词的第一个字母并将它们放入NSSet(一个集合是一个只允许任何数据出现的数据结构一旦)。有了它,您将拥有可用于创建部分的索引。

然后将您的NSSet映射到字典。每个键都是集合中的一个值,它们的值将是包含以该字母开头的单词的数组。

我没有实现这一点,但我会遵循这种方法。