暑假第三周总结

Posted Billy Miracle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了暑假第三周总结相关的知识,希望对你有一定的参考价值。


这一周我对之前的appshare进行了修改与订正,接下来进行了学生管理系统的编写。此外,还学习了几种主要的传值方式。

appshare部分:

  1. 完善了按钮点击后状态的保存:
    在上一个界面的viewdidload函数中创建后面的界面,而不是在单独的cell中新alloc下个界面。这样可以保证界面回退后不会重新初始化,即可保证按钮的状态不变。
  2. 修改了聊天界面,效果:

每次点击发送后是两个人轮流说话的模式,两个人可以说不同的文字了。返回上一层后,也保留了最后一次交流的内容:

这里使用两个不同的关键字区分两种cell:

if ([reuseIdentifier isEqualToString:@"left"]) {
        self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
        if (self) {
            。。。。。。
        }
        return self;
    } else {
        self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
        if (self) {
            。。。。。。
        }
        return self;
    }

因为左边的信息与右边的信息保存在两个不同的数组中,最后只需判断一下再将最后的对话内容传回上一个页面即可。

传值学习部分:

写了几个博客:
KVO传值
[iOS开发]block传值
[iOS开发]通知传值

学生管理系统部分:

学习了几种传值方式,将几种传值方式应用了一下,首页长这个样子:
几个功能界面相似这里举一个例子:

查找学生可以通过学生的任一属性查找,或者同时使用多种属性查找。找到后可以进行删除或更改的操作。
接下来我添加了排序了功能。这里我使用了数组自带的排序方法,以按成绩排序为例:

- (void)pressScore {
    _studentArraySort = [_studentArraySort sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
        Student *student1 = obj1;
        Student *student2 = obj2;
        NSComparisonResult result = [[NSNumber numberWithInt:[student1.studentScore intValue]]compare:[NSNumber numberWithInt:[student2.studentScore intValue]]];
        if (result == NSOrderedSame) {
            result = [student1.studentClass compare:student2.studentClass];
            return result == NSOrderedDescending;
        } else {
            return result == NSOrderedAscending;
        }
        
    }];
    [self pressBack];
}

使用- (NSArray<ObjectType> *)sortedArrayUsingComparator:(NSComparator NS_NOESCAPE)cmptr API_AVAILABLE(macos(10.6), ios(4.0), watchos(2.0), tvos(9.0));函数。这个函数将数组排序好后返回一个新的数组。这里

if (result == NSOrderedSame) {
    result = [student1.studentClass compare:student2.studentClass];
    return result == NSOrderedDescending;
} else {
    return result == NSOrderedAscending;
}

的作用是,当分数的比较结果为NSOrderedSame即分数相同时,这两名学生将会继续按照他们的班级继续比较,按照从小号班级到大号班级的顺序排列。此外,我还学习了按照拼音首字母来排序,这里需要先将名字转成拼音,使用的方法是:

NSMutableString *name1 = [NSMutableString stringWithString:student1.studentName];
NSMutableString *name2 = [NSMutableString stringWithString:student2.studentName];
CFStringTransform((CFMutableStringRef)name1, NULL, kCFStringTransformToLatin, false);
CFStringTransform((CFMutableStringRef)name2, NULL, kCFStringTransformToLatin, false);
NSComparisonResult result = [name1 compare:name2];

在应用各种传值时还是碰到过一些困难的,我相信未来的学习之路还很长。

以上是关于暑假第三周总结的主要内容,如果未能解决你的问题,请参考以下文章

暑假生活第三周总结

2018暑假第三周总结

暑假第三周总结

2018暑假第三周总结(7.16-7.29)

暑假第三周计划

大一暑假生活第三周