不積跬步,無以至千里;不積小流厨内,無以成江海∶煜停——荀子
[TOC]
2017-03-13
一雏胃、浮點數(shù)計算丟失精度問題
一般計算機編程語言中對浮點數(shù)計算的時候都會丟失精度,比如5000.9 * 100 != 500090
所以在計算浮點數(shù)的時候一定要謹(jǐn)慎一點志鞍,如果對精度要求比較高瞭亮,可以使用NSDecimalNumber。
2017-03-14
一固棚、UIButton的contentEdgeInsets统翩、imageEdgeInsets和titleEdgeInsets到底該怎么用?
- contentEdgeInsets:按鈕的圖片和文字一起進行偏移此洲。
- imageEdgeInsets:top厂汗,left,bottom都是相對于按鈕的黍翎,right是相對于title。
- titleEdgeInsets:top艳丛,bottom匣掸,right都是相對于按鈕的,left是相對于image氮双。
來源:關(guān)于UIButton的UIEdgeInsets屬性
結(jié)合UIButton默認(rèn)是圖片在左碰酝,文字在右的顯示規(guī)則來看,確實是這個道理戴差。記住這個規(guī)則后送爸,以后使用這些屬性的時候就能快速做出自己想要的效果了。
2017-03-15
一、TCP/IP 系列之 Header 篇
不得不承認(rèn)在大學(xué)的時候?qū)W習(xí)的《計算機網(wǎng)絡(luò)》早就忘完了袭厂,HTTP/TCP/IP相關(guān)技術(shù)點又是面試必備墨吓,得補習(xí)補習(xí)這方面的知識了。
2017-03-16
一纹磺、刷新UITableView時閃退問題
今天在測試的時候發(fā)現(xiàn)環(huán)信聊天頁面當(dāng)信息發(fā)送失敗后帖烘,點擊重新發(fā)送時出現(xiàn)了異常閃退,友盟統(tǒng)計后臺統(tǒng)計到錯誤原因是向數(shù)組中插入了nil橄杨。
經(jīng)排查發(fā)現(xiàn)以下環(huán)信demo的代碼:
EMChatViewCell *resendCell = [userInfo objectForKey:kShouldResendCell];
MessageModel *messageModel = resendCell.messageModel;
if ((messageModel.status != eMessageDeliveryState_Failure) && (messageModel.status != eMessageDeliveryState_Pending))
{
return;
}
id <IChatManager> chatManager = [[EaseMob sharedInstance] chatManager];
[chatManager asyncResendMessage:messageModel.message progress:nil];
NSIndexPath *indexPath = [self.tableView indexPathForCell:resendCell];
[self.tableView beginUpdates];
[self.tableView reloadRowsAtIndexPaths:@[indexPath]
withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];
根據(jù)友盟統(tǒng)計結(jié)果可以看到這里是indexPath為nil的情況下閃退了秘症,而indexPathForCell:
方法在目標(biāo)cell不可見的時候會返回nil,成功定位bug式矫!
將代碼修改如下:
EMChatViewCell *resendCell = [userInfo objectForKey:kShouldResendCell];
MessageModel *messageModel = resendCell.messageModel;
if ((messageModel.status != eMessageDeliveryState_Failure) && (messageModel.status != eMessageDeliveryState_Pending))
{
return;
}
id <IChatManager> chatManager = [[EaseMob sharedInstance] chatManager];
[chatManager asyncResendMessage:messageModel.message progress:nil];
NSIndexPath *indexPath = [self.tableView indexPathForCell:resendCell];//cell不可見的時候會返回nil
if(indexPath){
[self.tableView beginUpdates];
[self.tableView reloadRowsAtIndexPaths:@[indexPath]
withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];
}
2017-03-17
一乡摹、【收藏黨】我的2017 iOS開發(fā)工具集
分享的各種工具、博客采转、框架聪廉、網(wǎng)站資源非常豐富,信息量非常大氏义,值得收藏锄列。
2017-03-18
最近抽時間開始學(xué)習(xí)java,開始配置環(huán)境和學(xué)習(xí)JSP惯悠。
在Mac環(huán)境下配置tomcat
chmod 777 是什么意思邻邮?
mac下Tomcat安裝及啟動,瀏覽器卻打不開解決方案
mac下tomcat的安裝與配置
2017-03-19
今天在菜鳥教程上學(xué)習(xí)了怎么用Eclipse J2EE新建動態(tài)web項目(Dynamic Web Project)克婶、怎么創(chuàng)建web.xml部署描述文件筒严,了解了項目各個目錄的作用。一步步學(xué)習(xí)了怎么新建jsp文件和servlet文件情萤,以及web.xml的簡單配置鸭蛙,以前學(xué)習(xí)java只是停留在java SE,希望以后能深入學(xué)習(xí)一下java EE筋岛。
web.xml的簡單配置規(guī)則:
<servlet>
<!-- 類名 -->
<servlet-name>HelloServlet</servlet-name>
<!-- 所在的包 -->
<servlet-class>com.runoob.test.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<!-- 訪問的網(wǎng)址 -->
<url-pattern>/TomcatTest/HelloServlet</url-pattern>
</servlet-mapping>