用cocoapods 的時候出現,這種錯誤通常是由重複引用庫文件引發。android
緣由:本身嘗試添加Reachability的時候,用import ""導入, 發現沒又Reachability.h文件,就到link binary with libs裏添加了Reachability靜態庫。ios
使用cocoapod 文件都是以import <> 方式導入,刪掉project裏添加的,無需添加,直接引用便可。git
文本文件中的單引號自動變成了中文的單引號,理所固然編碼會出現問題。json
xcode 中添加了代碼片斷,要刪除的步驟。api
1.選中代碼片斷。 2. 點擊鍵盤delete 鍵。xcode
從字面上理解:可變的消息發給了不可變的對象。好比NSDictionary類型的對象調用setValue方法.應該把NSDictionary 改爲NSMutableDictionary類型app
'NSInvalidArgumentException', reason: '+[GMSCameraPosition
cameraWithLatitude:longitude:zoom:]: unrecognized selector sent to class
在build setting 的Other Linker Flags中設置爲-ObjC
socket
在谷歌map api 沒設置好。步驟:在developer console中心,post
1:將 Google Maps SDK for iOS 的功能打開,ui
2.申請與你ios項目對應boundle ID 的App Key。
通常app key在申請過程有幾個小時才能生效。肯定生效後才能調用地圖。
今天終於肯定了,原來ios在鎖屏以後,從新解鎖,這個過程會致使socket失效。 以前 的表現就是鎖屏,解鎖以後,程序直接crash。(實際上是解鎖以後,發送第一個包,在sendto以後會致使crash)。
目前的解決辦法是,從新建立了一個socket,close了以前的。
這好像是由於ios的鎖屏和按home鍵,最終的狀態時不同的, home鍵會致使程序進入後臺,也就是background狀態。
一般這個是由於內存釋放致使,可是在百度ios7上出現這個錯誤。緣由是mapapi.bundle 不存在,或者不是最新版本,嘗試把mapapi.bundle拖到百度地圖sdk中。運行。
other linker flags 添加 -all_load參數。
Project ->build settings ->linking->Other Linker flags
緣由:
若view 中加了UITapGestureRecognizer手勢和tableview ,UITapGestureRecognizer手勢調用後,就不會繼續往下傳遞(被攔截),這致使了tableview的點擊事件失效。
解決:
1.手勢設置委託方法。
UITapGestureRecognizer *tap =[[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(btnClicked:)];
tap.delegate =self;
tap.numberOfTapsRequired =1;
[self.viewaddGestureRecognizer:tap];
2.在回調方法中進行判斷,若觸摸的是tableviewcell的contentview,着不響應。使得事件往下傳遞。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
// 輸出點擊的view的類名
NSLog(@"%@", NSStringFromClass([touch.viewclass]));
// 若爲UITableViewCellContentView(即點擊了tableViewCell),則不截獲Touch事件
if ([NSStringFromClass([touch.viewclass]) isEqualToString:@"UITableViewCellContentView"]) {
return NO;
}
return YES;
}
在編譯工程時,有時會遇到相似「ld: library not found for -l....」的錯誤提示。
緣由:
一般這是因爲工程在編譯時找不到須要的連接庫而致使的。
解決方法:
通常能夠經過以下方法解決,在工程的Target中選中要執行編譯的某個target,而後「get info」,打開Build設置頁面,在「Library Search Path」中添加缺失連接庫的所在文件夾的路徑便可。
5.去掉xcode編譯warning:ld: warning: directory not found for option '-L
4.字典轉換錯誤:
-[NSDecimalNumber isEqualToString:]:
用sbjson解析字典時候出現如上錯誤。緣由是字典中的值不是字符串「1」,而是1的數字表示。
要直接獲得字符串的形式,在解析後給字典加上描述,如:
[[jsonObjects valueForKey:@"id"] description];
3.圖片自適應寬高。
imageView1.contentMode = UIViewContentModeScaleAspectFit;
[self.view addSubview:imageView1];
2.控件旋轉
宏定義 旋轉角度 :
#define degreesToRadians(x) (M_PI*(x)/180.0)
CGAffineTransform rotation = CGAffineTransformMakeRotation(degreesToRadians(180));//旋轉180度
[xxx setTransform:rotation];
順便記錄一些常量,之後用的着!
#define M_E 2.71828182845904523536028747135266250 e
#define M_LOG2E 1.44269504088896340735992468100189214 log 2e
#define M_LOG10E 0.434294481903251827651128918916605082 log 10e
#define M_LN2 0.693147180559945309417232121458176568 log e2
#define M_LN10 2.30258509299404568401799145468436421 log e10
#define M_PI 3.14159265358979323846264338327950288 pi
#define M_PI_2 1.57079632679489661923132169163975144 pi/2
#define M_PI_4 0.785398163397448309615660845819875721 pi/4
#define M_1_PI 0.318309886183790671537767526745028724 1/pi
#define M_2_PI 0.636619772367581343075535053490057448 2/pi
#define M_2_SQRTPI 1.12837916709551257389615890312154517 2/sqrt(pi)
#define M_SQRT2 1.41421356237309504880168872420969808 sqrt(2)
#define M_SQRT1_2 0.707106781186547524400844362104849039 1/sqrt(2)
1.ios 沙盒文件
描述:在對文件進行寫入時候出現失敗的狀況。排查錯誤,.路徑相同,仍然失敗,查找到此緣由。
沙盒裏面的,文件保存的位置分爲四個:
1,工程沙盒裏(就是程序user Document文件夾下,以讀取文件,寫入文件方式)
2,工程自身裏(就是在工程裏手動建立一個如.plist文件,把固定的內容寫入,這個須要人工手動寫入,即xxx.app文件)
3,工程沙盒裏(保存到user Document下,不過不須要讀寫文件,用系統的 NSUserDefaults 能夠快速保存添加讀取刪除基本數據類型,相似於android裏的Sharedpreferences )
4.tmp文件
要想真正的在app中對程序進行讀寫,只能把文件放在document,tmp裏面。