添加同一個控件屢次到父控件,最終只會添加一個該控件html
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ios
TableView中設置backgroundView,設置ImageView出不來?c++
由於target爲7,設置圖片只有8才能夠git
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -程序員
1.url編碼github
ios中http請求遇到漢字的時候,須要轉化成UTF-8,用到的方法是:swift
NSString * encodingString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];緩存
2.url解碼安全
請求後,返回的數據,如何顯示的是這樣的格式:%3A%2F%2F,此時須要咱們進行UTF-8解碼,用到的方法是:服務器
NSString *str = [model.album_name stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dataSourceArray和reloadData都要在主線程中完成
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*** Assertion failure in -[UITableView _dequeueReusableViewOfType:withIdentifier:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3512.30.14/UITableView.m:6532
解決:由於使用的tableViewCell的xib綁定了identifier,若是註冊時候不跟xib保持一致就會報錯,或者是代碼哪裏寫錯了,仔細檢查代碼。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
後面帶有UI_APPEARANE_SELECTOR的方法,均可以經過appearance統一設置
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IQKeyboardManager
鍵盤在切換textfield的時候出現順序有誤,跟添加textfield控件順序有關,調整順序便可解決
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
獲取子View所在控制器
- (UIViewController *)viewController
{
for (UIView* next = [self superview]; next; next = next.superview) {
UIResponder *nextResponder = [next nextResponder];
if ([nextResponder isKindOfClass:[UIViewController class]]) {
return (UIViewController *)nextResponder;
}
}
return nil;
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
This file is set to build for a version older than the project deployment target. Functionality may be limited.
解決方法:
選中xib 的文件,在 Builds for 中修改 Project Deployment Target
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
library not found for . . .
解決:.a文件未上傳到服務器
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
libc++abi.dylib: terminate_handler unexpectedly threw an exception
2016.01.23
遇到了這個狀況,發現是由於我從xib裏拖出來的屬性,被我改了名字致使
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
App installation failed
This application's application-identifier entitlement does not match that of the installed application. These values must match for an upgrade to be allowed.
解決:
iPhone上已經裝了包標識符同樣的 App,刪掉再運行。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
開發注意:
若是你建了一個類,好比:NCQRCodeViewController
那麼你就不能在建立NCQRCodeView(包含xib)這樣的類,不然會崩潰,緣由是由於NCQRCodeViewController會先去找NCQRCodeView.xib,納尼!就錯在這兒了。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ios9後打開百度、高德地圖須要如下配置
在info.plist添加白名單
<key>LSApplicationQueriesSchemes</key>
<array>
<string>baidumap</string>
<string>iosamap</string>
</array>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
設置狀態欄樣式
1 修改info.plist文件,讓UIApplication設置樣式
添加 View controller-based status bar appearance 並設置爲 NO
2 設置樣式
在appdelegate中application.statusBarStyle = UIStatusBarStyleLightContent;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Provisioning profile is expiring warning
~/Library/MobileDevice/Provisioning Profiles/
刪除掉全部的profile在從新下載
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
directory not found for option '-L
解決方法:
修改路徑:選擇項目名稱----->Targets----->Build Settings----->Search Paths----->Library Search Paths
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
==15481==ERROR: AddressSanitizer: heap-buffer-overflow
edit scheme…->Run->Diagnostics->取消 Enable Address Sanitizer
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Scale:拉伸圖片
Aspect:圖片長寬的比例,保持圖形的長寬比,保持圖片不變形。
Aspect Fill:在保持長寬比的前提下,縮放圖片,使圖片充滿容器。
Aspect Fit:在保持長寬比的前提下,縮放圖片,使得圖片在容器內完整顯示出來。
Scale to Fill: 縮放圖片,使圖片充滿容器。圖片未必保持長寬比例協調,有可能會拉伸至變形。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
桌面圖標通知
// 註冊推送, 用於iOS8以及iOS8以後的系統
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) {
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert) categories:nil];
[application registerUserNotificationSettings:settings];
}
application.applicationIconBadgeNumber = 1;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The identity used to sign the executable is no longer valid.
步驟:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
設備的provis文件地址
/Users/mashangyouqian/Library/MobileDevice/Provisioning Profiles
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
This application is modifying the autolayout engine from a background thread, which can lead to engine corruption and weird crashes. This will cause an exception in a future release
把須要更新UI的放在的主線程就行了
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The identity used to sign the executable is no longer valid
刪掉~/Library/MobileDevice/Provisioning Profiles/ 下全部文件, 在從新下載
下載:Xcode->Preference...->AppleID->ViewDetails->DownloadAll
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-(void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
// 開啓系統返回手勢
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
}
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
// 禁用系統返回手勢
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#pragma mark - tap和didSelect衝突解決
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {
// 若是返回NO,則gesture recognizer會忽略此觸摸事件
return NO;
}
return YES;
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CUICatalog: Invalid asset name supplied: (null)
緣由imageNamed爲空
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
iOS項目工程,添加一個c文件,編譯報錯
解決方案:
將#import用包裹起來
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
svn 提交 is out of date
update
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
給 App 瘦身的另外一個手段是提交 Bitcode 給 Apple,而不是最終的二進制。Bitcode 是 LLVM 的中間碼,在編譯器更新時,Apple 能夠用你以前提交的 Bitcode 進行優化,這樣你就沒必要在編譯器更新後再次提交你的 app,也能享受到編譯器改進所帶來的好處。Bitcode 支持在新項目中是默認開啓的,沒有特別理由的話,你也不須要將它特地關掉。
視頻 app 的畫中畫模式相對簡單一些,若是你使用 AVPlayerLayer 來播放視頻的話,那什麼都不用作就已經支持了。但若是你以前選擇的方案是 MPMoviePlayerViewController 的話,你可能也須要儘早遷移到 AVKit 的框架下來,由於 Media Player 將在 iOS 9 被標記爲 deprecated 並再也不繼續維護。
滑動覆蓋和分割視圖的 app 會使用 iOS 8 引入的 Size Class 中的 Compact Width 和 Regular Height 的設定,配合上 AutoLayout 來進行佈局。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
通知只在主線程發送。
在init中註冊,在dealloc中註銷。
ghthouse是一個很好的錯誤追蹤工具。OmniOutliner,我在這上面能夠找到一堆事情去作。
若是你崩潰了,最好使用殭屍Zombies工具。
真實的代碼質量遠比別人怎麼看我更重要。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The operation couldn’t be completed
退出Xcode重啓
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VVDocumenter-Xcode失效問題解決(若是這麼弄都不行, 就刪掉重來就OK)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
在info.plist中添加
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
iOS - is missing from working copy
解決方案:
1.打開終端
2.cd 到警告所提示的文件夾下
3.執行命令svn rm --force 丟失文件的名稱
4.回車
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
批量更新Xcode插件
find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add `defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID`
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
懶加載的好處
一、直接使用便可,不用關心他怎麼建立
二、保證他不空
三、業務邏輯清晰
UIPopoverController 詳見02-UIPopoverController.pptx
layoutSubviews,若是不是根據本身的尺寸來算子控件的尺寸,那麼該方法就沒有做用
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presenting view controllers on detached view controllers is discouraged <MyChargerViewController: 0x7fa84a4d4840>.
解決:
AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
[delegate.window.rootViewController presentViewController:self.loginNav animated:YES completion:nil];
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Unbalanced calls to begin/end appearance transitions for <TabBarController: 0x7fa84a515d00>.
解決:
進行視圖跳轉時,可能會遇到上面的警告日誌,好比在loadView、viewDidLoad、viewWillAppear中,使用下面的代碼:
AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
[delegate.window.rootViewController presentViewController:self.loginNav animated:YES completion:nil];
解決辦法:
在viewDidAppear中執行上述代碼便可;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
在使用MJRefresh時返回可能會崩潰, 緣由是在返回時須要在dealloc裏執行[self.header free];[self.footer free]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
找的時候能夠經過在app運行時打印[NSBundle mainBundle]路徑和NSHomeDirectory()發現具體路徑。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
對scrollView進行autolayout佈局很差搞,使用tableviewcell替代較好
在cell的contentView裏使用autolayout佈局,最後一個佈局不能使用尺寸佈局
label的autolayout佈局只須要設定位置和寬度就能夠,高度系統幫咱們算,也就意味着不用在使用bounding去計算高度了
插件路徑:~/Library/Application Support/Developer/Shared/Xcode/Plug-ins
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
若是是其餘格式轉爲mp3格式,該文件不能播放
wav:kAudioFormatLinearPCM
aac:kAudioFormatMPEG4AAC
caf:kAudioFormatLinearPCM、kAudioFormatAppleIMA四、kAudioFormatMPEG4AAC
m4a:kAudioFormatAppleLossless
本身錄製的aac能夠播放,安卓發的aac播放不了
本身錄製的wac能夠轉成amr,可是不能播,轉回wav能播,可是安卓發的amr轉不了wav
安卓發送的amr、aac文件不能加載
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
若是tableview沒有控制器,cell不要顯示在狀態欄下面:self.tableView.contentInset = UIEdgeInsetsMake(20.0f, 0.0f, 0.0f, 0.0f);
Tableview底部不要顯示沒有內容的cell:self.tableView.tableFooterView = [[UIView alloc] init];
得到導航欄高度?控制器不要滲透在導航欄下面:self.edgesForExtendedLayout=UIRectEdgeNone;
打開Mac隱藏文件命令:defaults write com.apple.finder AppleShowAllFiles -bool true
關閉Mac隱藏文件命令:defaults write com.apple.finder AppleShowAllFiles -bool false
功能代碼 在code4app找 或 在下載次數裏找完整項目
完整項目 在github找
導航欄改不了 使用kvc:[self setValue:[[CusNavigationBar alloc] init] forkeyPath:@「navigationBar」];
adjustsImageWhenHighlighted//設置高亮的時候不要讓圖標變色
若是設置了select圖片,在高亮狀態下不會顯示,這時覆蓋setHighlight
Default-568@2x.png若是沒有放在LaunchImage是不會自動加載的
Reflector 設備投影軟件
/*
http://www.cocoachina.com/ios/20150130/11076.html
當舊的 iPhone 5 程序運行在 iPhone 6 上面,假如沒有通過適配,舊程序自動等比放大,鋪滿新手機,舊程序也能夠正常運行。這種方案可算是自動適配。但由於舊程序拉伸了,總體看起來有點虛,也不能更好利用大屏空間。
當須要開發者手動適配的時候,跟 iPhone 4 過渡到 iPhone 5 同樣,在新程序中,指定一張新的啓動圖片。當指定了啓動圖,屏幕分辨率就已經變成應有的大小,這時候利用 AutoLayout 進行佈局,同一份代碼,就能夠支持多個機型。新手機的屏幕更大,有更多的虛擬點,能夠顯示更多的內容。
值得注意一點是,iPhone 6 Plus。它的寬高是 414 × 736 個點,3x 模式,理想上來講,應該有 1242 × 2208 像素。但 iPhone 6 Plus 的實際像素是 1080 × 1920,是比理想值要少一點的。iPhone 6 Plus 的處理方式是將程序總體稍微縮小一點。分辨率很高,這點區別,實際上也看不出來。
*/
遠程推送流程
推送是基於蘋果的APNs服務器的,是由於若是用戶把app關了,咱們公司的服務器會與咱們的app失去溝通,而蘋果的APNs服務器始終與咱們的設備保持長鏈接,那這樣咱們就只有藉助蘋果的APNs服務器完成推送
1.首先要得到設備的deviceToken
2.而後把deviceToken發給公司的服務器
3.由服務器,把deviceToken和推送的內容,交給蘋果的APNs服務器
4.蘋果的APNs服務器根據deviceToken,他就知道由哪個應用推東西給哪個設備
命令行衝突
(p)手動解決
(e)撤銷更新操做,回去修改代碼,至關於什麼也沒作
(mc)個人覆蓋掉服務器的
(tc)服務器覆蓋掉個人
(df)查看衝突
衝突解決方案:
1.df查看衝突,
2.p手動解決(會產生3個文件供查看,服務器前一個版本,服務器最新的版本,個人版本),解決衝突
3.resolved 文件,告訴服務器解決了衝突
回退
revert 只能對沒有提交到服務器的代碼恢復
解決回退已經提交的代碼:
更新上一個版本,把剛提交的代碼文件拷出來,在次更新到最新版本,把拷出來的代碼在拷進去,在提交更新
dispatch_once是線程安全的
200 OK
400 客戶端語法錯誤,服務器沒法解析
404 路徑錯誤
500 服務器錯誤
charles下載地址:http://www.charlesproxy.com/download/
tmp : 不會備份,系統隨時會被刪除
Documents :會備份到iTunes
Library :preferences 會備份到iTunes
Library :caches 不會備份,不會被系統刪除
多線程文件下載思路:
1首先建立一個等大小的空文件
2開多條線程分別去下載某一塊,使用NSFileHandle插入
http支持斷點下載,不支持斷點上傳
tcp/ip基於斷點上傳,基於socket
同步/異步決定了是否開啓新的線程,同步在主線程執行任務,異步在子線程執行任務(特例:若是是主隊列不會開啓子線程)。異步是具有開線程的能力
串行/併發決定了執行任務的方式,串行是一個一個的執行任務,併發是同時執行任務。
凡是函數名帶有create/copy/new/retain等字眼,都須要在不須要的時候進行release,若是在arc環境下release時報錯,就不用寫了。
主隊列無論用同步仍是異步都不會開線程
不能使用同步執行主隊列任務,會致使任務沒法往下執行
1.iPhone5分辨率320x568,像素640x1136,@2x
2.iPhone6分辨率375x667,像素750x1334,@2x
3.iPhone6 Plus分辨率414x736,像素1242x2208,@3x,(注意,在這個分辨率下渲染後,圖像等比下降pixel分辨率至1080p(1080x1920)
Debug:調試版本,程序員用,會啓動更多的服務來監控錯誤,速度比較慢
Release:發佈版本,用戶用,去掉那些繁瑣的監控服務,運行速度快,節省內存
發佈版本以前,在運行右邊的項目名稱->editScheme->run->info->Build Configuration 改成release測試一遍。靜態庫最好用release版本
內存分析工具
靜態分析:不用運行程序分析
動態分析運行程序時分析
swift學習博客:www.cnblogs.com/yangfaxian/p/3765081.html
工具:
1crashlytics崩潰報告
唐巧http://www.devtang.com/blog/2013/07/24/use-crashlytics/
2.github
3.simpholders快速打開應用沙盒
4.stackoverflow
音樂後臺運行
1.appDelegate.m
- (void)applicationDidEnterBackground:(UIApplication *)application
{
// 開啓後臺任務,讓程序保持運行狀態
[application beginBackgroundTaskWithExpirationHandler:nil];
}
2.Info.plist
Required background modes ->item = App plays audio or streams audio/video using AirPlay
3. 設置音頻會話類型
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategorySoloAmbient error:nil];
[session setActive:YES error:nil];
聯合主鍵
id name
1 jack
1 jim
這樣是能夠的
select * from t_food f, t_food_type t where f.food_type_id = t.id and t.name = ‘魯菜’;
select * from t_food f where f.food_type_id = (select t.id from t_food_type where t.name = ‘魯菜’);
binary是二進制數據
MJExension 中 模型轉字典的keyvalues若是屬性是nil,就不轉了
1.用戶業務—> UserTool
2.加載用戶我的信息—> userInfoWithParam:success:failure:
3.封裝請求參數—> UserInfoParam
4.封裝請求結果—> UserInfoResult
基本數據類型比對象性能高
請求參數用對象
返回用基本數據類型
添加異常斷點,就是在哪裏崩掉了就在哪裏打個斷點,點擊左側倒數第二個圖標,點+選「add exception breakpoint」
按鈕的title只要改動,該按鈕的寬度就須要調整。重寫setTitle方法,計算寬度。
-568h只支持Default-568h@2x.png
unassigned:不可用
設置cell的frame:重寫setFrame方法,[super setFrame:frame]以前設置cell的frame
設置imageView的高亮圖片:imageView.highlightedImage
微博時間處理:
1.今天
1分鐘之內:剛剛
一個小時之內&至少1分鐘:1分鐘前
至少一個小時前:1小時前
2.昨天:昨天 12:00
3.前天或更早:05-09 12:00
4.非本年:2014-05-09 12:00
AirServer:真機投影
SDWebImage:假如在cell上顯示圖片,本身開線程去下載圖片,會有很是很是多的細節要處理,爲了減去這些沒必要要的麻煩,異步下載這個圖片,咱們一般用一個框架叫 SDWebImage。
SDWebImage好處:1本地緩存,減省用戶流量,2異步下載,3避免圖片顯示錯誤
AFNetworking:網絡服務框架
KVC:會將字典全部key-value賦值給模型對應的屬性
git管理已經建立好的項目
1.打開終端切換到項目:cd 項目路徑
2.使用git進行初始化:git init
3.把項目代碼加到git裏:git add .
4.提交代碼到git裏:git commit -m '初始化’
註釋: -m表明所有 '’表明註釋
返回一個不須要系統自動渲染的圖片,也就是使用原始圖片
[image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]
imageView的圖片是放在次層上顯示的
ping 127.0.0.1 檢測本地網卡是否正常
ping 192.168.1.105 檢測網線是否正常
設置狀態欄樣式
1 修改info.plist文件,讓UIApplication設置樣式
添加 View controller-based status bar appearance 並設置爲 NO
2 設置樣式
在appdelegate中application.statusBarStyle = UIStatusBarStyleLightContent;
啓動圖片決定了窗口的大小
iOS7 有retain3.5 4.0英寸
iOS6 有retain3.5 4.0英寸 非retain3.5英寸
若是不用storyboard 【tableview dequeu… forIndexPath:] forIndexPath:就不用寫了
事件的完整處理過程
1.先講事件對象由上往下傳遞(由父控件傳遞給子控件),找到最合適的控件來處理這個事件。
2.調用最合適控件的touches方法。
3.若是調用了[super touches...]就會將事件順着響應者鏈條往上傳遞,傳遞給上一個響應者
4.接着就會調用上一個響應者的touches方法
上一個響應者:
1.若是當前這個view是控制器view,那麼控制器就是當前這個view的上一個響應者
2.若是當前這個view不是控制器view,那麼當前這個view的父控件就是上一個響應者
什麼是響應者鏈條
響應者鏈條是由多個響應者對象鏈接起來的鏈條
什麼是響應者:能處理事件的對象
利用響應者鏈條,能讓多個控件處理同一個觸摸事件
怎麼利用鏈條往上傳遞?上一個響應者
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ios中remove references和move to trash的區別?remove references 只是刪除引用 工程文件夾裏面仍是有這個文件的 move to trash 把文件從工程文件夾裏扔進垃圾箱裏了 .
快速修改本文件中全部的屬性名技巧: 選中屬性名後右擊選中refactor -> rename
IOS中屬性名不能以new開頭
Xcode 中 iOS SDK 和 iOS Deployment Target 的設置: Base SDK 指的是,當前編譯所用的SDK 版本; OS Deployment Target 指的是,編譯後的 app 可在 終端的哪一個 版本上運行。
寫delegate的時候類型應該爲weak弱引用,以免循環引用,當delegate對象不存在後,咱們寫的delegate也就沒有存在乎義了天然是須要銷燬的。@property (weak, nonatomic) id<MXCustomTabBarDelegate> delegate;
用XCode的Analyze能夠分析到哪裏有內存泄露。分析內存泄露不能把全部的內存泄露查出來,有的內存泄露是在運行時,用戶操做時才產生的。那就須要用到Instruments了。