專案踩坑記錄, 長期更新

weixin_33912445發表於2017-05-09

oc的專案中
podFile中不要加 use framework 這句話,會出現意想不到的問題(framework swift用到)

duplicate symbols for architecture x86_64錯誤
1.工程內重複引用檔案,也就是說工程中存在兩個同樣的檔案,在工程內搜一下就可以看到
2.引入了.m檔案,在報錯的檔案中檢視下,是否引入了.m檔案
3.多個檔案中定義了同名的外部變數,比如列舉比如define

2017-03-13 踩坑記錄

今天踩得坑

  1. GPS 座標用轉成了 int 型別 導致定位不準

原生地圖:
CLPlacemark類:地點標識,可以顯示 國家,地區 省市區,街道 ,時區等資訊

CLLocationCoordinate2D 獲得的是GPS 座標,蘋果手機在中國採用的是高德地圖的資料來顯示,採用的是火星座標
可以採用 JZLocationConverter 類來轉換座標系

模擬器截圖失敗
最近不知道什麼原因,iOS模組器截圖命令點選模擬器就閃退,在此記錄下在命令列截圖操作:
第一步:開啟對應的模擬器
第二步:模擬器縮放比為100%
第三步:輸入以下命令,001.jpg為要儲存的檔名
xcrun simctl io booted screenshot 001.jpg

使用NSTime ,time 事件不執行。
我的程式碼如下:
_refreshLocation = [NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(refreshLocation2:) userInfo:nil repeats:YES];
//先暫停 time
[_refreshLocation invalidate];
//然後
[_refreshLocation fire];
原因:方法 invalidate 會使 NSTime 物件無效,所以哪怕你後面是用來 [time fire]也沒用

正確的寫法
    _refreshLocation = [NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(refreshLocation2:) userInfo:nil repeats:YES];
    //先暫停 時間
     [_refreshLocation setFireDate:[NSDate distantFuture]];
    //然後 觸發時間
    [_refreshLocation setFireDate:[NSDate date]];
    [_refreshLocation fire];

@dynamic 和 @synthesize 區別

關於 控制器的viewDidLayoutSubviews方法 切記如果控制器內部self.view 的frame會發生變化,那麼這個控制器的頁面佈局不能寫道 viewDidLayoutSubviews方法中,

2017-03-27
當你使用方法 UIViewController *vc = [UIViewContrller alloc] init]控制器view的frame 在viewDidLoad中並沒有確定。預設是螢幕大小

做遠端推送時:忘記一句程式碼[[UIApplication sharedApplication] registerForRemoteNotifications];
導致一直獲取不到裝置DeviceToken 整整花了快兩個小時去找。。。真是。。。日了狗了

在寫彈出alertView(附帶 textFeild效果) 老是奔潰,因為是釋出版本,不能看控制檯輸出,在初始化UIAlertController時,沒有設定alert的style ,導致崩潰。

XIB建立控制器遇到的坑
錯誤做法:
1.建立Empty型別的XIB
2.給File's Owner 設定class類
3.拖進去一個ViewController
4.把File's Owner 和ViewController的view進行連線
5.使用[[UIViewController alloc] init] 建立vc
6.push
正確做法
把上面的改成3 改為拖一個view進去

給scrollview和它的子檢視新增約束要注意
1.子檢視的約束要基於scrollview,這樣scrollview才可以計算出自己的contentSize

NSLayoutAttributeLeading 和NSLayoutAttributeLeadingMargin 不要亂用,會讓檢視顯示的很彆扭

storyBoard 建立tableviewController 要記得在storyboard中給cell 設定identifier屬性

swift 中 強制型別轉換 使用 as 如 titleArr[index.row] as string

使用xib自定義cell的時候,註冊cell 要使用
self.tableView.register(UINib.init(nibName: "AutoTableViewCell", bundle: nil), forCellReuseIdentifier: "cell")

UISegmentedControl 的兩個顏色屬性
backgroundColor
tintColor
在未選中的時候:
背景顏色:backgroundColor
字型顏色:tintColor

在選中的時候:
背景顏色:tintColor
字型顏色:backgroundColor

pod 出錯
錯誤資訊:Note: as of CocoaPods 1.0, pod repo update does not happen on pod install by default.
解決方案
1.
pod repo remove master
pod setup
pod install

2.http://codecloud.net/14035.html
    $ sudo rm -fr ~/.cocoapods/repos/master
    $ pod setup
      pod install

錯誤:no suitable image found.
好像是 動態庫 簽名的問題,下面文章有解決辦法,不過 我照著來 也沒解決
http://blog.csdn.net/sinat_26415011/article/details/52433494

相關文章