iOS第一个项目错误个人整理

来源:互联网 发布:比特币高频交易编程 编辑:程序博客网 时间:2024/05/17 23:02
困难一:在创建cell的时候没有任何显示。
解决:在创建_mutacalMovie之前,没有正确的获取文件路径,导致_mutacalMovie.count为0,创建0个cell。

困难二:在创建星星的时候,产生闪退错误。
解决:在创建xib的时候,view建立连接的时候没有改变相应的class,导致闪退,将view的class改为MovieStarView,则完美解决这个问题。

重点:文件读取及解析。
           第三方的框架和方法。

           pch文件的作用就是全局,只要pch里面包含的代码,在全部文件中可以在不声明头文件的情况下使用方法。创建过程为,创建-》other-》pch文件。

问题一:在创建tableView的时候没有将cell加入到tableview中。
解决:在storyboard中直接创建tableView和cell,首先要把tableView与viewController建立连接,然后右击将delegate和datasource与viewController建立连接(即右击后会出现delegate和datasource,将这两个连接到本viewController的顶部三个图标的第一个图标)。

问题二:在创建tableView的时候出现错误。
解决:不能将cell中的元素与viewController建立连接,因为它不是隶属于viewController,而是直接属于tableView,所以只要tableView与viewController建立连接即可。另外还要将cell设置identifier,在- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath直接使用

问题三:在viewConrtoller给model赋值时出现null
解决:viewConrtoller给model时要整体赋值,即viewController中建一个可变数组,这个可变数组中存放model,再将可变数组中的元素赋值给model。

问题四:创建tableViewCell时cell的宽度和长度不和要求。
解决:没有加[super layoutSubviews];加了就好了。

问题一:故事版添加viewController,push进去得不到故事版的内容。
解决:要加载故事版上控制器不能简单的alloc  init。要 tableView *asd =  [self.storyboard instantiateViewControllerWithIdentifier:
@"tableView"];
备注:故事版中创建的CollectionViewController在给它的cell添加identifier之后还要给CollectionViewController添加一个storyboard ID。identifier就是storyboard ID。

问题二:在对应的collectionCell中加载图片时,图片会重复,就那么几张图片。
解决:这是因为加载图片等代码写在了layoutSubviews中,这样在下拉出现4个cell时只调用一次,那么只会加载一张图片,其他三个只能靠复用。所以一个解决方法就是在imageView的set方法中加载图片,但是这样会对用户的流量造成负担,因为没下拉的cell也会加载图片。另一种方法就是在willDisplayCell中加载图片,这样只会在cell将要出现的时候加载图片,不会造成流量浪费。

问题一:小海报栏子类化创建,在posterView中加入,出现不显示问题。
解决:因为添加的位置不对,起初我是在viewDidLoad中添加,因为在这种情况下加入的view可能被其他view覆盖或什么的原因。只要在_headerView之后添加button,才会有button,再加在initWithFrame中添加posterView。

问题一:KVO监听得到后,无法对监听目标的类对象进行正确的判断。
解决: [_posterSmallViewscrollToItemAtIndexPath:indexatScrollPosition:
UICollectionViewScrollPositionCenteredHorizontallyanimated:YES];中的ScrollPosition使用了UICollectionViewScrollPositionCenteredVertically,这表示垂直的移动。
UICollectionViewScrollPositionCenteredHorizontally
这表示水平的移动,我用的是水平移动,scroll里面用的是垂直移动自然不能移动了。

问题二:在使用xib做collectioncell的,由于使用view控制cell的,所以后来转到故事版时做cell,
加载不出来cell
解决:具体原因不知道,但是只要在创建的collectionViewController中使用自带的cell进行作画就
可以加载出来cell。结构很重要,在collectionViewController中已经有collectionView,所以呢,可以
直接在collectionViewController中用代理控制cell。省去collectionView环节,这样才能进行viewController
的push。

问题三:在使用didSelectedCell时使用push,会出错。
解决:因为 TopDetailView*topDetailView = [[[NSBundle
mainBundle]loadNibNamed:@"TopDetailView"owner:self
options:nil]lastObject];
   
    [self.view addSubview:topDetailView];
新建的view的名字不能与类名的字母一样(大小写无关),不然就会出现
outlet was not set什么的错误

问题四:新建的tableVIewCell和collectionViewCell的xib图部件关联会出现警告,运行布局出错
解决:在自动布局前先将控件与.h文件进行关联,这样就不会出错了。之前解释是错的。因为我
关联的imageView,我将他命名为contentView与tableView的contentView和collectionView的
contentView冲突。

问题五:影院cell显示的时候会出错,程序崩溃。
解决:因为给的json数据有问题,lowPrice有些是个null,lable.text不能传入NSNull,所以要处理
这些数据。

问题一:tableview的下面有横线,
解决:改成grouped就好了。






0 0