zoukankan      html  css  js  c++  java
  • 苹果官网 demo The Elements 阅读随笔

    The Elements
    https://developer.apple.com/library/ios/samplecode/TheElements/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007419
    
    
    UINavigationController *navController = [storyboard instantiateViewControllerWithIdentifier:@"navForTableView"];
       ElementsTableViewController *viewController =
           (ElementsTableViewController *)[navController topViewController]; //  1. [navController topViewController]
    
    
     id<ElementsDataSource, UITableViewDataSource> dataSource;
    dataSource = [[ElementsSortedByNameDataSource alloc] init];
        viewController.dataSource = dataSource; 2. //将dataSource 指定为其他类, 可以在其他类中实现 UITableViewDataSource 中的方法
    详见: 苹果官方demo The Elements
    
    在ElementsSortedByNameDataSource 类中实现UITableViewDataSource 的方法.
    
    3.
    AtomicElement 数据控制类:
    AtomicElementTileView 类声明 AtomicElement 类型的属性
    使用self.语法直接对其赋值
    
    elementTileView.element = _element;
    
    4. 使用 prepareForSegue 进行界面跳转
    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
    
    segue.destinationViewController 要跳转到的controller 
    segue.sourceViewController  资源controller (将要从这个controller进行跳转)
    
    5.
    (self.statesDictionary)[@"Solid"] = [NSMutableArray array]; //self.statesDictionary 这个字典本身无 Solid 这个 key ,
    但是此语法将 在self.statesDictionary 添加 以 Solid 为key 以后面创建的数组 [NSMutableArray array] 为value .
    
    6. 使用(self.nameIndexesDictionary)[aKey] 这类语法(糖衣语法), 
     (1)- (NSArray *)elementsWithInitialLetter:(NSString*)aKey {
        
        return (self.nameIndexesDictionary)[aKey];
    }
    (2) (self.elementsDictionary)[anElement.name] = anElement;
    (1),(2) 可以看出  (self.nameIndexesDictionary)[aKey] 这种语法既 self.nameIndexesDictionary[aKey] 将其对应的value 取出来 然后经行 set 方法取值 和 get 方法赋值.
    
    7. 从demo中获益最大的就是tableView.dataSource 可以指定为单独的一个类来控制 self.tableView 这样可以是Controller 可与 数据处理类 区分开来,
    是controller类中的代码更加简洁. 同理 delegate 也应该可以用此种方法实现. 
    
    8. 顺便记录一下 demo的项目文件夹结构. 
    (1)Classes{
              Application Support {
    
              }
              TableView Representations{
                    View Controllers{
    
                    }
                    User Interface Elements{
    
                    }
                    Data Sources{
    
                    }
              }
              Single Element View {
                    User Interface Elements{
    
                    }
                    Data Sources{
    
                    }
              }
              Data Model{
    
              }
          }
    (2)Other Sources{
    
          }
    (3)Resources{
    
          }
  • 相关阅读:
    名词解释
    cwoa2011项目部署到tomcat服务器(环境搭建及项目的运行)
    上网过程与原理
    C-编译器的实现
    css
    HMTL
    FIRST DAY
    关于面试的吐槽
    我的老大去创业啦
    .Net Core下使用 RSA
  • 原文地址:https://www.cnblogs.com/levy/p/4799100.html
Copyright © 2011-2022 走看看