本编是研究新浪微博首页效果的笔记总结,总的来说需要处理的有两个部分:
- 特殊字符的渲染,比如用户名、话题、小图标、url等
- 特殊字符的点击事件,需要定位触发点在那段特殊字符中,并以此做不同的处理,如果点击的是非特殊字符,则响应cell的点击事件
接口文件在这里,demo的效果如下:
一般情况下,如果APP涉及到视频播放功能,就不可避免的会有播放页面的横竖屏切换功能,一般的处理方式都是在general面板中,选择需要支持的屏幕方向,然后TabController->NavController->NotPlayerController设置竖屏,在modal的PlayerController设置支持横屏。
在AppDelete文件重新设置window,并且使用纯代码方式创建TabController及其RootController,结果发现在只支持竖屏的页面,状态栏还是自动三个方向旋转,即页面不旋转、导航栏旋转的诡异现象,代码如下1
2
3
4
5
6
7
8
9
10
11override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation {
return .portrait
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .portrait
}
override var shouldAutorotate: Bool {
return false
}
尝试发现,如果在APPDelegate中重新设置了window,要把general面板的中Main Interface置空,bug解决。
现有基类Parent如下:1
2
3
4
5
6
7
8
9
10#import "Parent.h"
@implementation Parent
- (void)test{
NSLog(@"%@",[self class]);
NSLog(@"%@",[self superclass]);
NSLog(@"%@",[super class]);
}
@end
1 | root your_root_path |
Session的学习笔记
cookie的有效时间是setcookie设置的, session的有效期是gc.maxlifttime设置的,但是通过$_Cookie中的PHPSeesionID找到,这个默认有效期是0,即关闭浏览器这个cookie就没了,那也就是说对应的session也就没了。如果在session有效期内重新设置了session,那么它的有效期会重新开始,cookie 设置值应该不会重新开始有效期,设置它的有效时间 应该会重新生成一个新的有效时间
以最后设置session的时间为开始点, 60m之后删除整个session文件
1 | ini_set('session.gc_maxlifetime', 60); // 60秒失效 |
namespace的引入是为了解决项目中的重名问题(类、方法、变量等),默认所有的访问都是在当前命名空间下的(如不设置命名空间,则是在全局命名空间下),当产生冲突的时候,就会发生错误,比如File_A中有个test()函数,File_B中也有个test()函数,当把File_A和File_B引入到同一个File_C中的时候,访问test()方法就会出现编译错误,因为不知道要去访问那个test()函数,就像4个人都叫李四,并不知道那个是你找的李四。而给文件设置命名空间之后,我们就可以通过在限定的命名空间下找test()函数,就像找家主A的李四,或者家住B的李四,这样就解决了命名冲突问题。
问题出现环境:ECS + centOS + LAMP
写微信小程序后台的时候,需要把一些数据存储到一个文件中管理(file_put_contents
),在本地测试的时候一切ok,但是代码上传到阿里云服务器的时候,这个时候就不行了,数据无法写入文件中。
百度发现是权限问题,在阿里云后台远程连接虚拟服务器,终端找到该文件,# chmod 777 文件名
一切ok。
开发过程中发现,分配父级文件夹777权限,其子文件并不会有777权限。
其实中间也是一直在做一件蠢事儿,在本地写完代码之后,图省事直接把整个项目扔进云服务器了,导致之前的项目被覆盖了,然后这个授权问题重复多次出现。因为这是第一次算是比较认真的写PHP后台,所以很多思维都不到位,比如这样做会把生产环境下记录的文件也给覆盖掉,这就罪过大了。