工做筆記_0726

 

經歷過的纔是最真實的  html

最近一段時間簡單的筆記數組

一、 錄屏權限選擇不容許時,處理網絡

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

備註:意外問題macdns設置問題,致使各類閃退,以及提交代碼提示:could not resolve host 框架

 

一、在視圖旋轉時,會產生鋸齒ide

解決:XCode的info.plist裏面有如下兩項能夠開啓抗鋸齒:函數

Renders with edge antialisasing = YES (UIViewEdgeAntialiasing)測試

Renders with group opacity = YES (UIViewGroupOpacity)url

可是我發現,當我在視圖裏放圖片,而後視圖加陰影后,移動產生了鋸齒。  spa

視圖內抗鋸齒處理:

在UIView的drawRect方法裏爲當前視圖打開抗鋸齒:

- (void)drawRect:(CGRect)rect

{

    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetAllowsAntialiasing(context, true);

    CGContextSetShouldAntialias(context, true);

}   

發現問題:

一、在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 

一、計算機網絡基礎知識點

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

一、地理位置解碼(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:@"========異常錯誤報告========\nname:%@\nreason:\n%@\ncallStackSymbols:\n%@",name,reason,[callStack componentsJoinedByString:@"\n"]];

    

    /**

     *  把異常崩潰信息發送至開發者郵件

     */

    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

一、結構體與類的區別 

(運行時產生的變量由堆分配內存,編譯時產生的變量由棧分配內存)

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 問題記錄

一、調用RPScreenRecorder時,會出現訪問權限彈框以及預覽視頻界面的按鈕,顯示爲英文

探究:在錄屏模塊開發過程當中發現,在iOS10.1如下的系統中,有國際化(大陸顯示中文),在iOS10.2以及更高版本中則沒有國際化處理,應該是目前新的系統中沒有對錄屏這塊進行國際化處理

 

二、在使用RPScreenRecorder調用stopRecordingWithHandler方法時,會偶爾報錯:RPRecordingErrorDomain - code(5804),錯誤信息顯示,failed during recording

解決:在開發文檔上,沒有查詢到此狀態碼,而且在stackoverflow中有開發者遇到此問題,至今沒有解決

偶然的一個方法,就是重啓了ipad,便可正常使用

 

三、預覽界面消失時,先調用-previewController:didFinishWithActivityTypes:方法,再調用-previewControllerDidFinish:方法

 一、點擊save  --- com.apple.UIKit.activity.SaveToCameraRoll  

 二、點擊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屬性值);錄屏功能和投屏功能不可同時使用

相關文章
相關標籤/搜索