zoukankan      html  css  js  c++  java
  • 工作笔记_0726

    经历过的才是最真实的  

    最近一段时间简单的笔记

    1、 录屏权限选择不允许时,处理

    viewServiceDidTerminateWithError:: Error Domain=_UIViewServiceInterfaceErrorDomain Code=3 "(null)" UserInfo={Message=Service Connection Interrupted}  

    备注:意外问题macdns设置问题,导致各种闪退,以及提交代码提示:could not resolve host 

     

    1、在视图旋转时,会产生锯齿

    解决:XCode的info.plist里面有以下两项可以开启抗锯齿:

    Renders with edge antialisasing = YES (UIViewEdgeAntialiasing)

    Renders with group opacity = YES (UIViewGroupOpacity)

    但是我发现,当我在视图里放图片,然后视图加阴影后,移动产生了锯齿。  

    视图内抗锯齿处理:

    在UIView的drawRect方法里为当前视图打开抗锯齿:

    - (void)drawRect:(CGRect)rect

    {

        CGContextRef context = UIGraphicsGetCurrentContext();

        CGContextSetAllowsAntialiasing(context, true);

        CGContextSetShouldAntialias(context, true);

    }   

    发现问题:

    1、在UIImageView 除外的视图中同时添加缩放手势、拖动手势时,会出现:在放大视图后,对视图进行拖动,会很缓慢  

    小记

    1NSFileManager进行操作时,只能对当前app中的资源进行操作,录屏产生的视频存在设备磁盘中,不属于当前app,所以不可以操作 

    // 获取录制完成的视频路径(遍历所有属性)

                    unsigned int count;

                    objc_property_t *properties = class_copyPropertyList([RPPreviewViewController class], &count); 

                    for (int i = 0; i<count; i++) {

                        objc_property_t property = properties[i];

                        const char *cName = property_getName(property);

                        NSString *name = [NSString stringWithCString:cName encoding:NSUTF8StringEncoding]; 

                        

                        if ([name isEqualToString:@"movieURL"]){

                            NSURL *movieURL = [_previewViewController valueForKey:@"movieURL"];

                            DEBUG_NSLog(@"movieURL:%@,path-%@",movieURL,movieURL.path);

                            

                           NSString *newFilePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:@"record_1.mp4"];

                             

                            long long filesize = [[[NSFileManager defaultManager] attributesOfItemAtPath:movieURL.path error:nil] fileSize];

                             NSString *fileSizeStr = [NSByteCountFormatter stringFromByteCount:filesize countStyle:NSByteCountFormatterCountStyleFile];

                            DEBUG_NSLog(@"录制视频文件大小-%@",fileSizeStr); 

                    }

                    free(properties);

    2、NSURL转路径字符串,[url path]; 

    2017-5-12 

    1、计算机网络基础知识点

    Mbps=mega bits per second(兆位/秒)是速率单位, 

    MB=mega bytes(兆比、兆字节)是量单位,1MB/S(兆字节/秒)=8MBPS(兆位/秒)。

    我们所说的硬盘容量是40GB、80GB、100GB,这里的B指是的Byte也就是“字节”。 

    所谓 10M 带宽,其实是指 10Mbps (兆比特)

    计算带宽理论最快下载速度:10÷8=1.25MB/s 

    a、家庭带宽大多数不是真正的独显,受上网时段影响,可能会出现高峰期时候与预期理论值相差非常大,空闲时间可能会超过理论值。 

    b、IDC带宽属于商用带宽价格相比就比家庭带宽贵的多,当然质量上也很稳定与充足,不会有太大的上下浮动,带宽上下行对等,IDC机房庞大的数据中心拥有足够的带宽资源

    知识点:

    由此方法来判断当前线程是否为主线程 

    /* returns non-zero if the current thread is the main thread */

    __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)

    int pthread_main_np(void);

    JSON

    @“

    {

    ”name”:”Harry Potter”,

    ”pages”:512.

    ”publishDate”:”2010-02”

    }

    ” 

    1、NSString* filePath   和NSString  *filePath 有没有区别 

    A、栈区(stack):由系统自动分配,一般存放函数参数值、局部变量的值  

    block有三种类型:

    a、__NSConcreteStackBlock(栈中)

    b、__NSConcreteGlobalBlock (程序的数据区域中):

    一般出现的情况:i.设置全局变量的地方;ii.Block愈发的表达式中不使用任何外部变量时

    c、__NSConcreteMallocBlock (堆中)

    对不同区域的block进行copy时,copy效果分别是:从栈复制到堆并被block持有、什么也不做、引用计数增加(被block持有) 

    __main_block_desc_0多了两个成员函数:

    __main_block_copy_0 __main_block_dispose_0

      

    2017-06-07

    1、利用clangoc代码转换成

    cd到文件所在文件夹路径,执行命令 clang -rewrite-objc yourfile.m 

    2、将oc文件转换成可执行文件  

    • -fobjc-arc表示编译器需要支持ARC特性
    • -framework Foundation表示引用Foundation框架
    • HelloWord.m为需要进行编译的源代码文件
    • -o HelloWord表示输出的可执行文件的文件名  

    cocos2d博客

    http://www.cnblogs.com/zilongshanren/default.html?page=8

      

    播放视频时录音会断

    [DFCNotificationCenter addObserver:self selector:@selector(audioSessionWasInterrupted:) name:AVAudioSessionInterruptionNotification object:nil];

    - (void)audioSessionWasInterrupted:(NSNotification *)notification

    {

    //    NSLog(@"the notification is %@",notification);

        DEBUG_NSLog(@"---%d",self.aqc.run); 

        if (AVAudioSessionInterruptionTypeBegan == [notification.userInfo[AVAudioSessionInterruptionTypeKey] intValue])

        {

            NSLog(@"begin");

        }

        else if (AVAudioSessionInterruptionTypeEnded == [notification.userInfo[AVAudioSessionInterruptionTypeKey] intValue])

        {

            NSLog(@"begin - end--%@",self);

            [[AVAudioSession sharedInstance] setActive:YES error:nil];

            [self start];

        }

    }

    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord mode:AVAudioSessionModeVoiceChat options:AVAudioSessionCategoryOptionMixWithOthers error:nil];

    备注:上面一句代码会造成无法使用airplay

    AVAudioSessionCategoryOptionMixWithOthers/* MixWithOthers is only valid with AVAudioSessionCategoryPlayAndRecord, AVAudioSessionCategoryPlayback, and  AVAudioSessionCategoryMultiRoute */

    渲染(rendering):计算机根据模型闯将图像的过程

    模型(model):根据几何图元创建,也称作物体(object)

    几何图元包括点、直线和多边形等,是通过顶点(vertex)指定

    window.windowLevel = UIWindowLevelAlert;

    使用此代码之后,状态栏有可能会消失

    2017-06-30

    1、地理位置解码(GPS、wifi路由器、蜂窝煤数据)

    通普路, 中国浙江省杭州市******通普路(wifi路由器)(大概定位到的是wifi分管路由器的位置,不太精确)
    ***中心Ⅰ座, 中国浙江省杭州市********5号附近(蜂窝数据)(相对于wifi定位 更精确)   

    2、异常处理(只能捕获部分异常)

    void UncaughtExceptionHandler(NSException *exception){

        NSArray *callStack = [exception callStackSymbols];

        NSString *reason = exception.reason;

        NSString *name = exception.name; 

        NSString *content = [NSString stringWithFormat:@"========异常错误报告======== name:%@ reason: %@ callStackSymbols: %@",name,reason,[callStack componentsJoinedByString:@" "]];

        

        /**

         *  把异常崩溃信息发送至开发者邮件

         */

        NSMutableString *mailUrl = [NSMutableString string];

        [mailUrl appendString:@"mailto:1254339809@qq.com"];

        [mailUrl appendString:@"?subject=程序异常崩溃,请配合发送异常报告,谢谢合作!"];

        [mailUrl appendFormat:@"&body=%@", content];

        // 打开地址

        NSString *mailPath = [mailUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:mailPath]];

    }  

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

        // Override point for customization after application launch.

        NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);

        return YES;

    2017-07-03

    1、结构体与类的区别 

    (运行时产生的变量由堆分配内存,编译时产生的变量由栈分配内存)

    a】结构体是实值类型(value types),使用栈存储(stack alloction),所有结构成员默认都是public,不能被声明为protected

    类是引用类型(reference types),使用堆存储(heap alloction) 

    b】结构体成员不能指定初始值、使用new关键字对数组进行初始化,不能声明默认的构造函数,也不能声明析构函数

    类变量可以指定赋值,可以声明析构函数 

    备注:析构函数与构造函数相反,当对象结束生命周期时,系统自动执行析构函数 

    在C语言中,通过结构体名称就可以完成结构体变量的定义,并分配内存空间;

    而类仅仅用来定义变量,不会分配内存空间,必须使用new等关键字来完成内存空间的分配

      

    2、在项目原有tableview上后续添加cell,点击没有反应(不走didSelectRowAtIndexPath方法),原有cell的正常

    原因:显示tableview的父级视图大小固定为原有数据的宽高,重新调整即可 

    1、本地找不到远程分支

    可以把远程某各分支拉去到本地的下,如果没有,则会在本地新建 

    获取远程分支到本地新分支,并跳到分支,这里加了,让创建的本地分支跟中远程的分支。  

    在当前分支的基础上创建新的分支 

    一、replay kit填坑笔记

    Section A 问题记录

    1、调用RPScreenRecorder时,会出现访问权限弹框以及预览视频界面的按钮,显示为英文

    探究:在录屏模块开发过程中发现,在iOS10.1以下的系统中,有国际化(大陆显示中文),在iOS10.2以及更高版本中则没有国际化处理,应该是目前新的系统中没有对录屏这块进行国际化处理

    2、在使用RPScreenRecorder调用stopRecordingWithHandler方法时,会偶尔报错:RPRecordingErrorDomain - code(5804),错误信息显示,failed during recording

    解决:在开发文档上,没有查询到此状态码,并且在stackoverflow中有开发者遇到此问题,至今没有解决

    偶然的一个方法,就是重启了ipad,即可正常使用

    3、预览界面消失时,先调用-previewController:didFinishWithActivityTypes:方法,再调用-previewControllerDidFinish:方法

     1、点击save  --- com.apple.UIKit.activity.SaveToCameraRoll  

     2、点击cancel --- activityTypes为空 

    Section B 框架缺陷:

    a、RPScreenRecorder初始化方法+ (RPScreenRecorder *)sharedRecorder中声明Singleton class used to control app recording,但是在同一模块多次调用[RPScreenRecorder sharedRecorder],然后多处打印该对象的recording属性时,会发现很乱,比如当前已经开始录屏,此时按照推理recording为yes,在想要结束录屏时打印该属性,则有可能为no,所以在使用时,最好将RPScreenRecorder变量还是声明为属性,在这种做法下,基本可以避免recording无规律的现象。因此对此处单例模式产生怀疑,或者说是自己对单例模式的理解有问题?

    b、在弹出视频预览框时,偶尔会出现白屏,这个具体原因有可能跟设备有关,或者说其他原因。(我在开发过程中遇到过几次,而测试人员在测试过程中则没有出现这种情况)

    viewServiceDidTerminateWithError:: Error Domain=_UIViewServiceInterfaceErrorDomain Code=3 "(null)" UserInfo={Message=Service Connection Interrupted}

    c、replaykit中的直播功能与录屏功能不可同时使用(两者都会影响recording属性值);录屏功能和投屏功能不可同时使用

  • 相关阅读:
    matlablib安装Helvetica字体
    word插入矢量图的方法
    字体对应关系
    MySQL8.0.15基于mycat读写分离(windows环境)
    2.MySQL8.0.15主从同步(windows环境)
    1.MySQL8.0.15安装步骤(windows环境)
    mysql自带的压力测试工具
    FreeFileSync + Windows任务计划程序 实现自动备份功能
    FreeFileSync 设置服务器文件自动备份,同时可做本地代码程序同步软件
    dokcer镜像添加ssh服务
  • 原文地址:https://www.cnblogs.com/Ice-snowPride/p/7241262.html
Copyright © 2011-2022 走看看