iOS 開發中遇到的問題

1. 關于糾結很久的KVO崩潰問題,其真正原因是,在刪除roomItem的KVO之前,將這個對象已經賦值為nil,所以實際上并沒有刪除他的observer,因此而崩潰;長時間糾結的原因是受.cxx_destruct影響了思路

?

2.拷貝block

因為block變量默認是聲明為棧變量的,為了能夠在block的聲明域外使用,所以要把block拷貝(copy)到堆,所以說為了block屬性聲明和實際的操作一致,最好聲明為copy。

?

3.移除observer

Observing 一個已經deallocate的對象不會引起程序crash,但是notifying 一個已經deallocated 的observer會引起程序的crash。這就是為什么要在dealloc 中加入removeObserver:。所以addObserver與 removeObserver一定要成對出現。一般情況下,在init方法中開始observing, 在dealloc中結束observing。
The notification center does not retain its observers, therefore, you must ensure that you unregister observers (using removeObserver: or removeObserver:name:object:) before they are deallocated. (If you don't, you will generate a runtime error if the center sends a message to a freed object.)

?

4.在拖動時使用NSTimer

在開啟一個NSTimer實質上是在當前的runloop中注冊了一個新的事件源,而當scrollView滾動的時候,當前的MainRunLoop是處于UITrackingRunLoopMode的模式下,在這個模式下,是不會處理NSDefaultRunLoopMode的消息(因為RunLoop Mode不一樣),要想在scrollView滾動的同時也接受其它runloop的消息,我們需要改變兩者之間的runloopmode.
?[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

?

5. 方法 performSelectorOnMainThread: withObject: waitUntilDone:中waitUntilDone:為YES時,會阻塞在當前線程,等目標線程的隊列中的任務完成之后才會繼續運行

?

6.兼容使用instancetype類型
#ifndef MB_INSTANCETYPE
#if __has_feature(objc_instancetype)
#define MB_INSTANCETYPE instancetype
#else
#define MB_INSTANCETYPE id
#endif
#endif


7.方法- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context NS_AVAILABLE_IOS(7_0)參數解析
NSStringDrawingTruncatesLastVisibleLine如果文本內容超出指定的矩形限制,文本將被截去并在最后一個字符后加上省略號。 如果指定了NSStringDrawingUsesLineFragmentOrigin選項,則該選項被忽略。NSStringDrawingUsesFontLeading計算行高時使用行間距。(譯者注:字體大小+行間距=行高)
NSStringDrawingUsesLineFragmentOrigin,那么整個文本將以每行組成的矩形為單位計算整個文本的尺寸。
NSStringDrawingUsesDeviceMetrics
計算布局時使用圖元字形(而不是印刷字體)。
context:context上下文。包括一些信息,例如如何調整字間距以及縮放。最終,該對象包含的信息將用于文本繪制。該參數可為 nil

?

8.主線程:一個iOS程序運行后,默認會開啟1條線程,稱為“主線程”或“UI線程”
主線程的主要作用
顯示\刷新UI界面
處理UI事件(比如點擊事件、滾動事件、拖拽事件等)
(1)在子線程中是不能進行UI 更新的,而可以更新的結果只是一個幻像:因為子線程代碼執行完畢了,又自動進入到了主線程,執行了子線程中的UI更新的函數棧,這中間的時間非常的短,就讓大家誤以為分線程可以更新UI。如果子線程一直在運行,則子線程中的UI更新的函數棧 主線程無法獲知,即無法更新

(2)只有極少數的UI能,因為開辟線程時會獲取當前環境,如點擊某個按鈕,這個按鈕響應的方法是開辟一個子線程,在子線程中對該按鈕進行UI 更新是能及時的,如換標題,換背景圖,但這沒有任何意義

?

9.在UisearchBar中一直顯示Xbutton:?UITextField* textField = [searchBar valueForKey:@"_searchField"]; ?textField.clearButtonMode = UITextFieldViewModeNever;

?

10.(KVC)獲取UISearchBar中的textField:UITextField* textField = [searchBar valueForKey:@"_searchField"];

  獲取UITextField中的clearButton:UIButton *clearButton = [textField valueForKey:@"_clearButton"];

?

11. storyboard預覽??

WWDC 2013 session 406 中視頻說起,開啟輔佐助預覽窗心,方式以下: 1.挑選須要預覽的view 2.面擊左上角 related files 按鈕 3.按住鍵盤的 control option(alt)鍵,面擊preview 選項中的storyboard選項 ;又或者可以按住 shift option鍵,點擊preview,彈出一個窗口,雙擊"+"就會打開預覽界面,通過這個方式可以打開多個預覽界面; 選擇Double Length Pseudolanguage使label等中的文字都增加一倍,檢查界面效果 (ps:布局可參看鏈接http://www.cocoachina.com/ios/20141020/9978.html)

?

12.添加獲取用戶位置權限的提示文字:在App的?info.plist?中添加?NSLocationWhenInUseUsageDescription?或?NSLocationAlwaysUsageDescription?為新鍵,然后輸入告知用戶請求許可的字符串。例如:“顯示附近的物品項需要獲取您的位置。”

?

13. 浮點數在計算機中的存儲方式就決定了它是有誤差,如果你需要精確的計算,使用[NSDecimalNumber decimalNumberWithString:]來得到一個NSDecimalNumber,可以通過這個類的函數進行加減乘除運算。

?

14.iOS擴展屬性:category可以擴展類的方法,但是不能擴張類的屬性。如果要擴展類的屬性,可以用associative,這個相對于category來說用的比較少,而且他還用到運行時編程,必須使用<obj/runtime.h>,使用objc_getAssociatedObject,objc_setAssociatedObject以及objc_removeAssociatedObjects

?

15.?

UITableView提供了一個批量操作的特性,這個功能在一次進行多個row或者scetion的刪除,插入,獲取更新多個cell內容的時候特別好用。所有的批量操作需要包含在beginUpdates和endUpdates塊中,否則會出現異常。在批量操作時,不管代碼中先寫的添加操作還是刪除操作,添加操作都會被推遲執行,直到這個塊中所有的刪除操作都執行完以后,才會執行添加操作。?

?

16.?Scroll view 沒有固定的高度和寬度。
Scroll View 的 寬度和高度由其內容所決定(即 Scroll View 的 contentSize 所決定) 。
內容的大小必須不依賴于 Scroll View 的尺寸。例如,Content1,Content2,Content3 不能包含任何與 Container View 相關的 top,bottom,left 和 right 的布局約束。只能包含固定寬度和高度的約束(每個約束至少在得在其中之一上定義)。如果任何一個 content view 都不包含這些約束,則它們的大小將依賴于 Scroll View(因為它們被綁定到 Scroll View 的邊距),但 Scroll View 又依賴于內容的尺寸,這就導致矛盾沖突。
?ScrollView 必須至少有一個內容綁定它的四條邊,例如 top,left,right,bottom。這樣 ScrollView 才能知道它的內容的邊界在哪里,即 Scroll View 的 ContentSize。

?

17.將controller的view添加到其他視圖上時,如果沒有將控制器添加為對應的子控制器,并且沒有持有這個控制器的成員變量,那么這個控制器就會被釋放掉,對應的控制器的view也會被釋放掉,這時如果在對這個view(雖然釋放掉了,但是如果之前顯示在界面上,那么他仍然顯示在界面上)進行操作,程序就會崩潰;這就是為什么在其中添加timer就不會崩潰的原因,這是因為timer持有了控制器。

?

18. NSTimer中的fire方法的作用是使定時器立即觸發,但是僅對循壞的定時器起作用,對一次運行的定時器沒有作用;這個方法不會打亂循環執行的時間,也就是對循環執行沒有影響。

?

19.**Autolayout布局下,要使用transform做動畫效果,使用Layer的transform,并且使用圖層動畫,不能使用視圖動畫。

?

20.iOS7系統中UIAlertView崩潰問題,UIAlertView delegate is @property(nonatomic, assign) id delegate, so ensure alertView.delegate = nil when delegate is dealloced. 就是因為UIAlertView的代理被釋放之后,沒有置為空,所以造成崩潰。

?

21.Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString objectAtIndexedSubscript:]: unrecognized selector sent to instance 0x7fff395245e0' 這種崩潰往往是因為想訪問數組的元素,但是消息卻發送給一個字符串(NSString)對象,所以可以查找數組(有可能也是字典)訪問的地方,判斷是否真正是數組對象。

?

22.C語言的static修飾的函數作用:

 1. 靜態函數會被自動分配在一個一直使用的存儲區,直到退出應用程序實例,避免了調用函數時壓棧出棧,速度快很多。
?? 2. 關鍵字“static”,譯成中文就是“靜態的”,所以內部函數又稱靜態函數。但此處“static”的含義不是指存儲方式,而是指對函數的作用域僅局限于本文件。 使用內部函數的好處是:不同的人編寫不同的函數時,不用擔心自己定義的函數,是否會與其它文件中的函數同名,因為同名也沒有關系。

?

*23.去掉項目中的警告信息(#pragma GCC diagnostic ignored "-Wunused-variable"):http://www.dbp-consulting.com/tutorials/SuppressingGCCWarnings.html

?

24.LanuchScreen在iOS8之后的系統中才能使用,之前的系統是不支持它的;iOS9之后http不能使用,而是被https代替,如果在iOS9中仍然想使用http,可以參考這個設置:https://segmentfault.com/a/1190000002933776

?

*25.蘋果的根證書過期造成的證書不能使用的問題,請參看鏈接:http://www.jianshu.com/p/6bf5a30553bf

?

26.如何使用隨機數,如何產生一個真正的隨機數,參看鏈接:http://nshipster.cn/random/?????? http://www.cnblogs.com/rupeng/p/3723018.html

?

27.多工程聯編的配置問題:https://www.ganlvji.com/xcode_subproject_project_dependency/

?

28.彈性動畫+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay usingSpringWithDamping:(CGFloat)dampingRation initialSpringVelocity:(CGFloat)velocity options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion的參數解析http://www.renfei.org/blog/ios-8-spring-animation.html

?

29.去掉tabBar上面的一條細線:self.tabBar.backgroundImage = [[UIImage alloc] init];?? self.tabBar.shadowImage = [[UIImage alloc] init];

?

30.設置StatusBar不起作用的原因:info.plist 文件中,View controller-based status bar appearance項設為YES,則View controller對status bar的設置優先級高于application的設置。為NO則以application的設置為準,view controller的prefersStatusBarHidden方法無效,是根本不會被調用的。設置為YES后,在info.plist中再加入key為statue bar style的鍵值對就可以全局改變statue bar的樣式。

31.UILabel在Autolayout下的多行顯示參考:http://www.kdfly.com/?p=160

32.Content Hugging 和 Content Compression Resistance和屬性的解析,參看:http://blog.csdn.net/yongyinmg/article/details/39526207

33. 在iOS7中,UIViewController還提供了一個 automaticallyAdjustsScrollViewInsets 屬性。它可以使得scroll view的上下部分仍然在各種Bar的后面以半透明的形式顯示出來,同時scroll的主題內容不被bar遮蓋。在實際使用的時候,本人發現并不是任何時候都是這樣的,能夠生效的前提條件是UIScrollView對象是作為content view controller的root view或者是view0。

34.iOS使用定位服務,彈出提示框的提示文字設置:http://blog.devzeng.com/blog/ios8-corelocation-framework.html

35.更改應用使用硬件的權限,應用崩潰問題請參考:http://www.jianshu.com/p/ada52c520ccb

36.文字描邊代碼:

//繼承UILabel以后重載drawTextInRect
- (void)drawTextInRect:(CGRect)rect {

?? CGSize shadowOffset = self.shadowOffset;
?? UIColor *textColor = self.textColor;

?? CGContextRef c = UIGraphicsGetCurrentContext();
?? CGContextSetLineWidth(c, 1);
?? CGContextSetLineJoin(c, kCGLineJoinRound);

?? CGContextSetTextDrawingMode(c, kCGTextStroke);
?? self.textColor = [UIColor whiteColor];
?? [super drawTextInRect:rect];

?? CGContextSetTextDrawingMode(c, kCGTextFill);
?? self.textColor = textColor;
?? self.shadowOffset = CGSizeMake(0, 0);
?? [super drawTextInRect:rect];

?? self.shadowOffset = shadowOffset;

}
//該片段來自于http://outofmemory.cn

?

*37.在bundle中使用圖片,圖片在編譯后生成.tiff文件的問題:默認情況下,有兩種resolutions的圖片可以產生一些有趣的現象。例如,當你導入一個retina @2x版本的圖片時,普通版的和Retina版的將會合并成一個多resolution的TIFF(標簽圖像文件格式,Tagged Image File Format)。這不是一件好事。搜索hidpi將COMBINE_HIDPI_IMAGES設置為NO。

38.tintColor屬性對UIButton不起作用的原因是創建button的類型要使用UIButtonTypeSystem

39.NavitatiionController改變返回按鈕后,手勢失效的解決方法是添加

if?([self?respondsToSelector:@selector(interactivePopGestureRecognizer)])?{??

??????? self.interactivePopGestureRecognizer.delegate?=?weakSelf;?

}

40.使用位置時要顯示的請求授權,且在設置中更改授權狀態后,返回app,程序不會崩潰;使用相機、相冊、麥克風時,不用必須顯示的請求授權,在使用時系統會自動提示授權,且在設置中更改授權狀態后,返回app,程序會崩潰,當然使用相機、相冊、麥克風時,也可以顯示的請求用戶授權,不一定非要等到使用的時候由系統提示授權。

?

41.Cookie是放在請求頭中的,https://www.skyfox.org/ios-url-request-cookie.html ? ?? http://blog.csdn.net/chun799/article/details/17206907?

NSHTTPCookieStorage單件類提供了管理所有NSHTTPCookie對象的接口,在OS X里,cookie是在所有程序中共享的,而在iOS中,cookie只在當前應用中有效。

?

42.統計漢字和assic的一小段代碼:

- (NSUInteger)unicodeLengthOfString:(NSString *)text
{
??? NSUInteger asciiLength = 0;
?? ?
??? for (NSUInteger i = 0; i < text.length; i++) {
??????? unichar uc = [text characterAtIndex: i];
??????? asciiLength += isascii(uc) ? 1 : 2;
??? }
?? ?
??? NSUInteger unicodeLength = asciiLength / 2;
?? ?
??? if(asciiLength % 2) {
??????? unicodeLength++;
??? }
??? return unicodeLength;
}

43.fir.im 只支持兩種打包方式,AdHoc、InHouse,AdHoc 就是內測版,InHouse 就是企業版,這里是識別上傳的 .ipa 的信息來區分證書類型的,如果想顯示企業版,需要用企業證書 InHouse 打包方式來導出 .ipa。

?

44.默認情況下,有兩種resolutions的圖片可以產生一些有趣的現象。例如,當你導入一個retina @2x版本的圖片時,普通版的和Retina版的將會合并成一個多resolution的TIFF(標簽圖像文件格式,Tagged Image File Format)。這不是一件好事。搜索hidpi將COMBINE_HIDPI_IMAGES設置為NO。

?

45.設備接到apns發來的通知,應用處理通知有以下幾種情況:

1. 應用還沒有加載
這時如果點擊通知的顯示按鈕,會調用didFinishLaunchingWithOptions,不會調用didReceiveRemoteNotification方法。
如果點擊通知的關閉按鈕,再點擊應用,只會調用didFinishLaunchingWithOptions方法。

2. 應用在前臺(foreground)
這時如果收到通知,會觸發didReceiveRemoteNotification方法。

3.應用在后臺
(1)此時如果收到通知,點擊顯示按鈕,會調用didReceiveRemoteNotification方法。
(2)點擊關閉再點擊應用,則上面兩個方法都不會被調用這時,只能在applicationWillEnterForeground或者applicationDidBecomeActive,根據發過來通知中的badge進行判斷是否有通知,然后發請求獲取數據

46.在彈出UIAlertView的同時,調用UINavigationController的pop方法,則pop方法不能生效,放到彈出UIAlertView之前可解決問題

47.刪除工程中無用圖片的腳本:http://www.jianshu.com/p/17c000d97a74

48.iOS How can I skip compressing one PNG?? 答案:Xcode will only optimize PNG image files that it knows about. To prevent a specific PNG from being optimized, you change its file type so Xcode no longer knows it's a PNG. Change the file type from Default - PNG Image to Data in Identity and Type inspector in XCode.

?

49.Compress PNG Files的作用

Compress PNG Files"實際上是將圖片像素的顏色信息,轉換成iPhone能夠更快渲染的格式。
PNG圖片采用的顏色空間,一般是RGBA。也就是說,一個像素點的顏色,是由四個分表代表紅色,綠色,藍色,透明度的字節來存儲。而iPhone的圖像內存,使用的是一種非標準的顏色空間(BGRA,對應的圖片格式叫做CgBI))。從讀取圖片像素點RGBA的信息,到最終計算出,屏幕渲染所需的BGR,會有更大的耗時。如果圖片一開始就是以BGR保存的,那渲染時要做的,就僅僅是個簡單的內存拷貝操作。因此,在項目進行編譯,也就是“Compress PNG Files"時,Xcode會對圖片中的顏色信息進行計算轉換。假設圖片中某個像素是這樣的一個顏色(R:0.0,? G:0.0, B:1.0,? A:0.5),那么在編譯時,這個像素點會被轉換成(B:0.5, G:0.0, R:0.0, A:0.5.大家可以看到,藍色的部分,已經被乘以50%的透明度。通過這樣的預處理,在程序運行時就不用再對顏色進行轉換。但是,A(透明值)仍然會保存在圖片信息中,這是因為我們的項目可能需要對同個位置的兩張圖片進行混合,在這種情況下,iPhone就需要通過透明值來計算,最終呈現給用戶的,是怎樣一個顏色。在iOS項目中,將你的UIImageView屬性的opaque (不透明)設為YES,iPhone便會知道圖片中的alpha通道是無需使用到的,直接將GRB的值渲染出來即可,省去重計算顏色值的過程。

?

50.幾個ARC下的內存注意事項:

1.在UIView動畫過程中動畫的控件以及其子控件是不能響應事件的,這應該是渲染樹導致的(UIView動畫執行完成,才會把控件設置為最終的位置);UIView動畫的block會使包含其中的成員變量的引用計數加一,但是不會形成循壞引用,并且在父視圖銷毀時,應該移除了父視圖本身及其子視圖上的動畫,因此,即使子視圖在動畫過程中,只要父視圖銷毀了,子視圖就銷毀了。

2.GCD中block在沒有runLoop時會及時釋放,當有runLoop時,runLoop會間接持有block中的成員變量,造成不能釋放。

3.performSelector:withObject:afterDelay:方法會持有調用該方法的對象和withObjct參數,直到方法完成為止,所以會造成對象不能立即釋放。

?

51.原碼、反碼、補碼的詳細講解:http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html

52.蘋果開發賬號的注冊流程:http://www.chinaz.com/manage/2016/0317/513437.shtml

53.解決Cound not find Developer Disk Image問題:將想支持的iOS系統版本的文件拷貝到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport目錄下即可

54.比較版本號用NSNumericsearch,用nsnumericsearch的話就是逐個取出數字進行比較。先比較第一個數字3和3,相等的話繼續比第二個,1和2,顯然2比1大,所以字符串2比字符串1大。

55.適配iOS10:http://www.jianshu.com/p/9756992a35ca

56.iOS 將Log日志輸出到文件中保存(通過iTunes獲取共享的log日志):http://blog.csdn.net/u013250412/article/details/46924381

57.在安裝XCode時,命令行工具不會一起安裝,需要單獨安裝。安裝方法:1.可以從官網現在命令行工具直接安裝 2.在終端中執行命令行中的命令,會自動提示安裝命令行工具。

58.iOS內購設置協議、稅務和銀行業務:http://blog.csdn.net/lxmy2012/article/details/48444731

設置內購的注意事項:(1)只有填寫完整協議、稅務和銀行業務并審核通過后,才能使用蘋果的內購功能。   (2)在填寫銀行信息的時候CNAPS碼的查詢可以通過網站 http://www.tui78.com/bank/14772.html

59.詳細的內購流程:http://blog.csdn.net/jiisd/article/details/50527426

60.iOS推送流程:http://www.jianshu.com/p/4b947569a548  http://superdanny.link/2016/02/02/iOS-Apple-Push-Notification-Service/

61.iOS代碼簽名探析:https://objccn.io/issue-17-2/

62.URL Scheme詳解:http://sspai.com/31500

63.關于友盟渠道使用的那些事:http://bbs.umeng.com/thread-6193-1-1.html

64.iOS 10『限制廣告追蹤』為移動廣告帶來哪些影響(IDFA):http://www.admaster.com.cn/?c=downloads&a=view&id=71

65.iOS 中 self 和 super 的區別:http://blog.csdn.net/wangjunling888/article/details/51712504

66.__IPHONE_OS_VERSION_MAX_ALLOWED用來判斷是否當前版本SDK“開始”支持或具有某些功能; __IPHONE_OS_VERSION_MIN_REQUIRED用來判斷是否當前版本SDK“仍然”支持或具有某些功能。

iOS不同版本適配問題(__IPHONE_OS_VERSION_MAX_ALLOWED 和 __IPHONE_OS_VERSION_MIN_REQUIRED) ? ? ?http://blog.csdn.net/xyxjn/article/details/40425895

67. Xcode 中的 Aggregate Target 的用處

Xcode defines a special type of target that lets you build a group of targets at once, even if those targets do not depend on each other. An aggregate target has no associated product and no build rules. Instead, an aggregate target depends on each of the targets you want to build together. For example, you may have a group of products that you want to build together. You would create an aggregate target and make it depend on each of the product targets. To build all the products, just build the aggregate target.

An aggregate target may contain a custom Run Script build phase or a Copy Files build phase, but it cannot contain any other build phases. Any build settings that the aggregate target contains are not interpreted but are passed to the build phases that the target contains.

轉載于:https://www.cnblogs.com/wfwenchao/p/4881486.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/374327.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/374327.shtml
英文地址,請注明出處:http://en.pswp.cn/news/374327.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

為舊版代碼創建存根–測試技術6

任何閱讀此博客的人都可能已經意識到&#xff0c;目前我正在開發一個包含大量舊代碼的項目&#xff0c;這些舊代碼龐大&#xff0c;擴展且編寫時從未進行過任何測試。 在使用此遺留代碼時&#xff0c;有一個行為異常的類非常普遍&#xff0c;整個團隊都一次又一次地犯錯。 為了…

C學習雜記(一)常見誤會

一、sizeof是關鍵字&#xff0c;不是函數。 二、strlen是函數。

python性能解決_我們如何發現并解決Python代碼中性能下降的問題

Python部落(python.freelycode.com)組織翻譯&#xff0c;禁止轉載&#xff0c;歡迎轉發。 作者&#xff1a;Omer Lachish 最近&#xff0c;我們已經開始使用RQ庫代替Celery庫作為我們的任務運行引擎。第一階段&#xff0c;我們只遷移了那些不直接進行查詢工作的任務。這些任務包…

easyui $.parser.parse 頁面重新渲染

一些dom元素是動態拼接上的easui的樣式&#xff0c;由于頁面已經渲染過了&#xff0c;所以需要手動執行渲染某個部件或者整個頁面 $.parser.parse(); // parse all the page $.parser.parse(#cc); // parse the specified node $.parser.parse($("#grid").parent());…

Java EE6裝飾器:在注入時裝飾類

軟件中常見的設計模式是裝飾器模式 。 我們上一堂課&#xff0c;然后在它周圍包裝另一堂課。 這樣&#xff0c;當我們調用類時&#xff0c;我們總是在到達內部類之前經過周圍的類。 Java EE 6允許我們通過CDI創建裝飾器&#xff0c;作為其AOP功能的一部分。 如果我們想實現仍然…

C語言代碼規范(六)浮點型變量邏輯比較

無論是float還是double類型的變量&#xff0c;都有精度限制。所以一定要避免將浮點變量用""或"!"與數字比較&#xff0c;應該設法轉化成為">"或"<"形式。 不建議使用的例子&#xff1a; if(0.0 x) if(0.0 ! x) 強烈推薦的例…

圖靈機器人調用數據恢復_機器人也能撩妹?python程序員自制微信機器人,替他俘獲女神芳心...

機器人也有感情還記得王傳君飾演的《星語心愿之再愛》這部電影嗎&#xff1f;王傳君飾演的天才程序員“王鵬鵬”因工作原因不能陪伴照顧身在異地的女朋友“林亦男”&#xff0c;呆萌宅男“王鵬鵬”開發出一款以自己為原型的“王鵬鵬8.0”程序去陪伴異地戀的女友&#xff0c;后來…

Spark排錯與優化

一. 運維 1. Master掛掉,standby重啟也失效 Master默認使用512M內存&#xff0c;當集群中運行的任務特別多時&#xff0c;就會掛掉&#xff0c;原因是master會讀取每個task的event log日志去生成spark ui&#xff0c;內存不足自然會OOM&#xff0c;可以在master的運行日志中看到…

在MySQL上使用帶密碼的GlassFish JDBC安全性

我在該博客上最成功的文章之一是有關在GlassFish上使用基于表單的身份驗證來建立JDBC安全領域的文章 。 對這篇文章的一些評論使我意識到&#xff0c;要真正使它安全&#xff0c;應該做的還很多。 開箱即用的安全性 圖片&#xff1a; TheKenChan &#xff08; CC BY-NC 2.0 &a…

mgo寫入安全機制

mgo寫入安全機制 mongo寫入安全mgo寫入安全mongo寫入安全 mongo本身也有一整套的寫入安全機制,但是在這篇的內容里只介紹一小部分相關部分.先放一個鏈接可以跳過本節不看直接看這個 鏈接. WriteConcern.NONE:沒有異常拋出WriteConcern.NORMAL:僅拋出網絡錯誤異常&#xff0c;沒…

C學習雜記(二)筆試題:不使用任何中間變量如何將a、b的值進行交換

常見的方法如下 void swap1(int *a, int *b) {int temp *a;*a *b;*b temp; } 不使用中間變量的方法 void swap2(int *a, int *b) {*a *a *b;*b *a - *b;*a *a - *b; } 這種方法是不可取的&#xff0c;因為ab和a-b的運算可能會導致數據溢出。 void swap3(int *a, in…

利用python進行數據分析_利用python進行數據分析復現(1)

&#xfeff;一直以來&#xff0c;都想學習python數據分析相關的知識&#xff0c;總是拖拖拉拉&#xff0c;包括這次這個分享也是。《利用python進行數據分析 第2版》是一次無意之間在簡書上看到的一個分享&#xff0c;我決定將很詳細。一直都想著可以復現一下。但總有理由&…

在運行時交換出Spring Bean配置

如今&#xff0c;大多數Java開發人員都定期與Spring打交道&#xff0c;而我們當中的許多人已經熟悉了Spring的功能和局限性。 最近&#xff0c;我遇到了一個我從未遇到過的問題&#xff1a;引入了基于運行時引入的配置來重新連接Bean內部的功能。 這對于簡單的配置更改或交換掉…

Proximal Algorithms--Accelerated proximal gradient method

4.3 Accelerated proximal gradient method&#xff1a; 加速近端梯度方法&#xff1a; 基本的近端梯度方法的所謂的“加速”版本&#xff0c;就是在算法中包含了一個外推(extrapolation)步驟&#xff0c;一個簡單的版本是&#xff1a; yk1:xkωk(xk?xk?1)xk1:proxλkg(yk1?…

C語言代碼規范(七)#define

#define 宏定義的使用 #define MAX(x, y) ( ((x) > (y)) ? (x) : (y) ) #define MIN(x, y) ( ((x) < (y)) ? (x) : (y) ) 在宏定義中要把參數用括號擴起來( ((x) > (y)) ? (x) : (y) )。 因為宏只是簡單的文本替換&#xff0c;如果不注意&#xff0c;很容…

http 二進制_淺談HTTP協議

HTTP一、HTTP協議http協議&#xff0c;是超文本傳輸協議&#xff0c;此協議是基于TCP/IP的協議&#xff0c;是互聯網上應用最為廣泛的一直網絡協議是一種無狀態協議&#xff0c;默認端口為80,。設計HTTP的最初目的是為了提供一種發布和接受HTML頁面的方法。通過HTTP或者HTTPS協…

登陸注冊

登陸注冊&#xff0c;注冊的賬號存在服務器的數據庫里&#xff0c;成功了就給你返回成功&#xff0c;失敗了就返回失敗 有三種登陸方式&#xff1a;普通注冊&#xff0c;手機號注冊&#xff0c;第三方注冊轉載于:https://www.cnblogs.com/SensenCoder/p/4885606.html

Java并發教程–線程池

Java 1.5中提供的最通用的并發增強功能之一是引入了可自定義的線程池。 這些線程池使您可以對諸如線程數&#xff0c;線程重用&#xff0c;調度和線程構造之類的東西進行大量控制。 讓我們回顧一下。 首先&#xff0c;線程池。 讓我們直接進入java.util.concurrent.ExecutorSer…

HTTPPost/AFNetWorking/JSONModel/NSPredicate

一、HTTPPost 1. POST方式發送請求 HTTP協議下默認數據發送請求方法是GET方式&#xff0c;若需要使用POST方法&#xff0c;則需要對發送的請求也就是request對象&#xff0c;進行屬性設置。 步驟如下&#xff1a; > 要發送的請求對象&#xff0c;需要使用可變請求對象 [[NSM…

C語言代碼規范(八)使用const修飾值不允許改變的變量

使用const限定一個變量的值不允許被改變&#xff0c;從而保護被修飾的東西&#xff0c;防止意外&#xff0c;提高程序的可靠性和安全性。