日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

iOS开发 Xcode8中遇到的问题及改动

發(fā)布時(shí)間:2025/3/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS开发 Xcode8中遇到的问题及改动 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

iOS開(kāi)發(fā) Xcode8中遇到的問(wèn)題及改動(dòng)

?

新版本發(fā)布總會(huì)有很多坑,也會(huì)有很多改動(dòng)。

一個(gè)一個(gè)填吧。。。

一、遇到的問(wèn)題

1、權(quán)限以及相關(guān)設(shè)置

iOS10系統(tǒng)下調(diào)用系統(tǒng)相冊(cè)、相機(jī)功能,或者蘋(píng)果健康都會(huì)遇到閃退的情況,
調(diào)用系統(tǒng)相冊(cè)報(bào)錯(cuò)描述如下:

This app has crashed because it attempted to access privacy-sensitive data without a usage description.The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data

解決辦法(fix method):
info.plist —Source Code中添加
UsageDescription相關(guān)的key, 描述字符串自己隨意填寫(xiě)就可以,但是一定要填寫(xiě),不然會(huì)引發(fā)包無(wú)效的問(wèn)題,導(dǎo)致上傳打包后構(gòu)建版本一直不顯示

<!-- 相冊(cè) --> <key>NSPhotoLibraryUsageDescription</key> <string>App需要您的同意,才能訪問(wèn)相冊(cè)</string> <!-- 相機(jī) --> <key>NSCameraUsageDescription</key> <string>App需要您的同意,才能訪問(wèn)相機(jī)</string> <!-- 麥克風(fēng) --> <key>NSMicrophoneUsageDescription</key> <string>App需要您的同意,才能訪問(wèn)麥克風(fēng)</string> <!-- 位置 --> <key>NSLocationUsageDescription</key> <string>App需要您的同意,才能訪問(wèn)位置</string> <!-- 在使用期間訪問(wèn)位置 --> <key>NSLocationWhenInUseUsageDescription</key> <string>App需要您的同意,才能在使用期間訪問(wèn)位置</string> <!-- 始終訪問(wèn)位置 --> <key>NSLocationAlwaysUsageDescription</key> <string>App需要您的同意,才能始終訪問(wèn)位置</string> <!-- 日歷 --> <key>NSCalendarsUsageDescription</key> <string>App需要您的同意,才能訪問(wèn)日歷</string> <!-- 提醒事項(xiàng) --> <key>NSRemindersUsageDescription</key> <string>App需要您的同意,才能訪問(wèn)提醒事項(xiàng)</string> <!-- 運(yùn)動(dòng)與健身 --> <key>NSMotionUsageDescription</key> <string>App需要您的同意,才能訪問(wèn)運(yùn)動(dòng)與健身</string> <!-- 健康更新 --> <key>NSHealthUpdateUsageDescription</key> <string>App需要您的同意,才能訪問(wèn)健康更新 </string> <!-- 健康分享 --> <key>NSHealthShareUsageDescription</key> <string>App需要您的同意,才能訪問(wèn)健康分享</string> <!-- 藍(lán)牙 --> <key>NSBluetoothPeripheralUsageDescription</key> <string>App需要您的同意,才能訪問(wèn)藍(lán)牙</string> <!-- 媒體資料庫(kù) --> <key>NSAppleMusicUsageDescription</key> <string>App需要您的同意,才能訪問(wèn)媒體資料庫(kù)</string>

如果不起作用,可以請(qǐng)求后臺(tái)權(quán)限,類似于這樣:

<key>UIBackgroundModes</key> <array> <!-- 在這里寫(xiě)上你在后臺(tái)模式下要使用權(quán)限對(duì)應(yīng)的key --> <string>location</string> ... </array>

或者在info.plist—Property List中添加

輸入 Privacy?

部分

麥克風(fēng)權(quán)限:Privacy - Microphone Usage Description?

通訊錄權(quán)限: Privacy - Contacts Usage Description?

藍(lán)牙權(quán)限:Privacy - Bluetooth Peripheral Usage Description?

語(yǔ)音轉(zhuǎn)文字權(quán)限:Privacy - Speech Recognition Usage Description?

日歷權(quán)限:Privacy - Calendars Usage Description?

定位權(quán)限:Privacy - Location When In Use Usage Description?

定位權(quán)限: Privacy - Location Always Usage Description?

定位的需要這么寫(xiě),防止上架被拒。

2、代碼注釋不能用的解決辦法

這個(gè)是因?yàn)樘O(píng)果解決xcode ghost,把插件屏蔽了。
解決辦法(fix method):
打開(kāi)終端,命令運(yùn)行:?sudo /usr/libexec/xpccachectl
重啟電腦后生效

注意:Xcode8內(nèi)置了開(kāi)啟注釋的功能:

Add Documentation

快捷鍵的設(shè)置:
Xcode-> Preferences -> Key Bindings

Documentation

三方插件解決辦法(fix method):
讓你的 Xcode8 繼續(xù)使用插件
但是看到文章最后的解釋,我們知道如果用插件的話,可能安全上會(huì)有問(wèn)題、并且提交審核會(huì)被拒絕,所以建議大家還是不要用了,解決辦法總是有的,比如在Xcode中添加注釋的代碼塊也是很方便的。

3.屏蔽雜亂無(wú)章的log

解決辦法(fix method):
Edit Scheme-> Run -> Arguments,
Environment Variables里邊添加
OS_ACTIVITY_MODE = Disable
————這種方法會(huì)屏蔽掉真機(jī)的NSLog,解決方法請(qǐng)等待————

Edit Scheme

成功后的喜悅

4.UIStatusBar方法過(guò)期:

解決辦法(fix method):

//屬性&&方法 @property(nonatomic, readonly) UIStatusBarStyle preferredStatusBarStyle NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED; // Defaults to UIStatusBarStyleDefault @property(nonatomic, readonly) BOOL prefersStatusBarHidden NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED; // Defaults to NO - (UIStatusBarStyle)preferredStatusBarStyle NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED; // Defaults to UIStatusBarStyleDefault - (BOOL)prefersStatusBarHidden NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED; // Defaults to NO // Override to return the type of animation that should be used for status bar changes for this view controller. This currently only affects changes to prefersStatusBarHidden.- (UIStatusBarAnimation)preferredStatusBarUpdateAnimation NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED; // Defaults to UIStatusBarAnimationFade //可以這樣寫(xiě) - (UIStatusBarStyle)preferredStatusBarStyle {return UIStatusBarStyleDefault; }

5.label中的文字顯示不全

用Xcode 8和Xcode 7.3
分別測(cè)試了下,如下圖:
Xcode 8

Xcode 7

創(chuàng)建一個(gè)Label然后讓它自適應(yīng)大小,字體大小都是17最后輸出的寬度是不一樣的,我們?cè)倏匆幌?#xff0c;下面的數(shù)據(jù)就知道為什么升iOS 10之后App中有的文字顯示不全了:

發(fā)現(xiàn)英文字母沒(méi)有問(wèn)題,只有漢字有問(wèn)題。目前只有一個(gè)一個(gè)修改控件解決這個(gè)問(wèn)題。

解決辦法(fix method):

UILabel *myLabel = [UILabel new]; /*UIFont 的preferredFontForTextStyle: 意思是指定一個(gè)樣式,并讓字體大小符合用戶設(shè)定的字體大小。 */ myLabel.font =[UIFont preferredFontForTextStyle: UIFontTextStyleHeadline];/*Indicates whether the corresponding element should automatically update its font when the device’s UIContentSizeCategory is changed.For this property to take effect, the element’s font must be a font vended using +preferredFontForTextStyle: or +preferredFontForTextStyle:compatibleWithTraitCollection: with a valid UIFontTextStyle.*/ //是否更新字體的變化 myLabel.adjustsFontForContentSizeCategory = YES;

6.使用Xib awakeFromNib的警告問(wèn)題

Xcode 8之前我們使用Xib初始化- (void)awakeFromNib {}都是這么寫(xiě)也沒(méi)什么問(wèn)題,但是在Xcode 8會(huì)有如下警告:

如果不喜歡這個(gè)警告的話,應(yīng)該明確的加上[super awakeFromNib];

7.判斷系統(tǒng)版本

oc

//值為10.0 [[UIDevice currentDevice] systemVersion] if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:(NSOperatingSystemVersion){.majorVersion = 9, .minorVersion = 1, .patchVersion = 0}]) { NSLog(@"Hello from > iOS 9.1"); } if ([NSProcessInfo.processInfo isOperatingSystemAtLeastVersion:(NSOperatingSystemVersion){9,3,0}]) {NSLog(@"Hello from > iOS 9.3"); } if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_9_0) {// do stuff for iOS 9 and newer } else { // do stuff for older versions than iOS 9 }

swift

if NSProcessInfo().isOperatingSystemAtLeastVersion(NSOperatingSystemVersion(majorVersion: 10, minorVersion: 0, patchVersion: 0)) { // 代碼塊 } if #available(iOS 10.0, *) { // 代碼塊 } else { // 代碼塊 }

8.ATS的問(wèn)題

iOS 9中默認(rèn)非HTTPS的網(wǎng)絡(luò)是被禁止的,當(dāng)然我們也可以把NSAllowsArbitraryLoads設(shè)置為YES禁用ATS。不過(guò)iOS 10從2017年1月1日起蘋(píng)果不允許我們通過(guò)這個(gè)方法跳過(guò)ATS
,也就是說(shuō)強(qiáng)制我們用HTTPS,如果不這樣的話提交App可能會(huì)被拒絕。但是我們可以通過(guò)NSExceptionDomains來(lái)針對(duì)特定的域名開(kāi)放HTTP可以容易通過(guò)審核。
參考學(xué)習(xí)文章如下:關(guān)于 iOS 10 中 ATS 的問(wèn)題

9.Xib文件的注意事項(xiàng)

使用Xcode8打開(kāi)xib文件后,會(huì)出現(xiàn)下圖的提示:

Choose Device


大家選擇Choose Device即可。
之后大家會(huì)發(fā)現(xiàn)布局啊,frame亂了,只需要更新一下frame即可。如下圖

update frame

  • 注意:如果按上面的步驟操作后,在用Xcode7打開(kāi)Xib會(huì)報(bào)一下錯(cuò)誤,

Xcode 8.0 or later

  • 解決辦法:右鍵Xib文件->Open As Source Code?刪除下面的 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 這句話,以及把< document >中的toolsVersion和< plugIn >中的version改成你正常的xib文件中的值,不過(guò)不建議這么做,在Xcode8出來(lái)后,希望大家都快速上手,全員更新。這就跟Xcode5到Xcode6一樣,有變動(dòng),但是還是要盡早學(xué)習(xí),盡快適應(yīng)喲!

10.tabbar隱藏上面的黑線

//UITabBarController里面 [[UITabBar appearance] setBackgroundImage:[UIImage imageNamed:@"BarBackground.png"]; [[UITabBar appearance] setShadowImage:[UIImage new]];

—————————————我是分割線—————————————

二、改動(dòng)

1.UIColor 新增方法

iOS 10?蘋(píng)果官方建議我們使用sRGB,因?yàn)樗阅芨?#xff0c;色彩更豐富。如果你自己為UIColor寫(xiě)了一套分類的話也可嘗試替換為sRGB,UIColor類中新增了兩個(gè)Api如下:

+ (UIColor *)colorWithDisplayP3Red:(CGFloat)displayP3Red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha NS_AVAILABLE_IOS(10_0);- (UIColor *)initWithDisplayP3Red:(CGFloat)displayP3Red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha NS_AVAILABLE_IOS(10_0);

2.真彩色的顯示

真彩色的顯示會(huì)根據(jù)光感應(yīng)器來(lái)自動(dòng)的調(diào)節(jié)達(dá)到特定環(huán)境下顯示與性能的平衡效果,如果需要這個(gè)功能的話,可以在info.plist-Source Code里配置:

<key>UIWhitePointAdaptivityStyle</key> 它有五種取值,分別是: <string>UIWhitePointAdaptivityStyleStandard</string> // 標(biāo)準(zhǔn)模式 <string>UIWhitePointAdaptivityStyleReading</string> // 閱讀模式 <string>UIWhitePointAdaptivityStylePhoto</string> // 圖片模式 <string>UIWhitePointAdaptivityStyleVideo</string> // 視頻模式 <string>UIWhitePointAdaptivityStyleStandard</string> // 游戲模式

也就是說(shuō)如果你的項(xiàng)目是閱讀類的,就選擇UIWhitePointAdaptivityStyleReading這個(gè)模式,五種模式的顯示效果是從上往下遞減,也就是說(shuō)如果你的項(xiàng)目是圖片處理類的,你選擇的是閱讀模式,給選擇太好的效果會(huì)影響性能.

3.UITextContentType

// The textContentType property is to provide the keyboard with extra information about the semantic intent of the text document. @property(nonatomic,copy) UITextContentType textContentType NS_AVAILABLE_IOS(10_0); // default is nil

iOS 10UITextField添加了textContentType枚舉,指示文本輸入?yún)^(qū)域所期望的語(yǔ)義意義。
使用此屬性可以給鍵盤(pán)和系統(tǒng)信息,關(guān)于用戶輸入的內(nèi)容的預(yù)期的語(yǔ)義意義。例如,您可以指定一個(gè)文本字段,用戶填寫(xiě)收到一封電子郵件確認(rèn)uitextcontenttypeemailaddress。當(dāng)您提供有關(guān)您期望用戶在文本輸入?yún)^(qū)域中輸入的內(nèi)容的信息時(shí),系統(tǒng)可以在某些情況下自動(dòng)選擇適當(dāng)?shù)逆I盤(pán),并提高鍵盤(pán)修正和主動(dòng)與其他文本輸入機(jī)會(huì)的整合。

4. UIRefreshControl的使用

在iOS 10 中, UIRefreshControl可以直接在UICollectionView和UITableView中使用,并且脫離了UITableViewController.現(xiàn)在RefreshControl是UIScrollView的一個(gè)屬性.使用方法:

UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init]; [refreshControl addTarget:self action:@selector(loadData) forControlEvents:UIControlEventValueChanged]; collectionView.refreshControl = refreshControl;

5.Notification(通知)

自從Notification被引入之后,蘋(píng)果就不斷的更新優(yōu)化,但這些更新優(yōu)化只是小打小鬧,直至現(xiàn)在iOS 10開(kāi)始真正的進(jìn)行大改重構(gòu),這讓開(kāi)發(fā)者也體會(huì)到UserNotifications的易用,功能也變得非常強(qiáng)大。

iOS 9 以前的通知

  • 在調(diào)用方法時(shí),有些方法讓人很難區(qū)分,容易寫(xiě)錯(cuò)方法,這讓開(kāi)發(fā)者有時(shí)候很苦惱。
  • 應(yīng)用在運(yùn)行時(shí)和非運(yùn)行時(shí)捕獲通知的路徑還不一致。
  • 應(yīng)用在前臺(tái)時(shí),是無(wú)法直接顯示遠(yuǎn)程通知,還需要進(jìn)一步處理。
  • 已經(jīng)發(fā)出的通知是不能更新的,內(nèi)容發(fā)出時(shí)是不能改變的,并且只有簡(jiǎn)單文本展示方式,擴(kuò)展性根本不是很好。
  • iOS 10 開(kāi)始的通知

  • 所有相關(guān)通知被統(tǒng)一到了UserNotifications.framework框架中。
  • 增加了撤銷(xiāo)、更新、中途還可以修改通知的內(nèi)容。
  • 通知不在是簡(jiǎn)單的文本了,可以加入視頻、圖片,自定義通知的展示等等。
  • iOS 10相對(duì)之前的通知來(lái)說(shuō)更加好用易于管理,并且進(jìn)行了大規(guī)模優(yōu)化,對(duì)于開(kāi)發(fā)者來(lái)說(shuō)是一件好事。
  • iOS 10開(kāi)始對(duì)于權(quán)限問(wèn)題進(jìn)行了優(yōu)化,申請(qǐng)權(quán)限就比較簡(jiǎn)單了(本地與遠(yuǎn)程通知集成在一個(gè)方法中)。
  • iOS 10 通知學(xué)習(xí)相關(guān)資料:

  • UserNotifications: 蘋(píng)果官方文檔
  • 蘋(píng)果官方視頻1
  • 蘋(píng)果官方視頻2
  • 蘋(píng)果官方視頻3
  • 活久見(jiàn)的重構(gòu) - iOS 10 UserNotifications 框架解析
  • WWDC2016 Session筆記 - iOS 10 推送Notification新特性
  • 6.UICollectionViewCell

    在iOS 10 之前,UICollectionView上面如果有大量cell,當(dāng)用戶活動(dòng)很快的時(shí)候,整個(gè)UICollectionView的卡頓會(huì)很明顯,為什么會(huì)造成這樣的問(wèn)題,這里涉及到了iOS 系統(tǒng)的重用機(jī)制,當(dāng)cell準(zhǔn)備加載進(jìn)屏幕的時(shí)候,整個(gè)cell都已經(jīng)加載完成,等待在屏幕外面了,也就是整整一行cell都已經(jīng)加載完畢,這就是造成卡頓的主要原因,專業(yè)術(shù)語(yǔ)叫做:掉幀.要想讓用戶感覺(jué)不到卡頓,我們的app必須幀率達(dá)到60幀/秒,也就是說(shuō)每幀16毫秒要刷新一次.

    iOS 10 之前UICollectionViewCell的生命周期是這樣的:

  • 用戶滑動(dòng)屏幕,屏幕外有一個(gè)cell準(zhǔn)備加載進(jìn)來(lái),把cell從reusr隊(duì)列拿出來(lái),然后調(diào)用prepareForReuse方法,在這個(gè)方法里面,可以重置cell的狀態(tài),加載新的數(shù)據(jù);
  • 繼續(xù)滑動(dòng),就會(huì)調(diào)用cellForItemAtIndexPath方法,在這個(gè)方法里面給cell賦值模型,然后返回給系統(tǒng);
  • 當(dāng)cell馬上進(jìn)去屏幕的時(shí)候,就會(huì)調(diào)用willDisplayCell方法,在這個(gè)方法里面我們還可以修改cell,為進(jìn)入屏幕做最后的準(zhǔn)備工作;
  • 執(zhí)行完willDisplayCell方法后,cell就進(jìn)去屏幕了.當(dāng)cell完全離開(kāi)屏幕以后,會(huì)調(diào)用didEndDisplayingCell方法.
  • iOS 10 UICollectionViewCell的生命周期是這樣的:

  • 用戶滑動(dòng)屏幕,屏幕外有一個(gè)cell準(zhǔn)備加載進(jìn)來(lái),把cell從reusr隊(duì)列拿出來(lái),然后調(diào)用prepareForReuse方法,在這里當(dāng)cell還沒(méi)有進(jìn)去屏幕的時(shí)候,就已經(jīng)提前調(diào)用這個(gè)方法了,對(duì)比之前的區(qū)別是之前是cell的上邊緣馬上進(jìn)去屏幕的時(shí)候就會(huì)調(diào)用該方法,而iOS 10 提前到cell還在屏幕外面的時(shí)候就調(diào)用;
  • cellForItemAtIndexPath中創(chuàng)建cell,填充數(shù)據(jù),刷新?tīng)顟B(tài)等操作,相比于之前也提前了;
  • 用戶繼續(xù)滑動(dòng)的話,當(dāng)cell馬上就需要顯示的時(shí)候我們?cè)僬{(diào)用willDisplayCell方法,原則就是:何時(shí)需要顯示,何時(shí)再去調(diào)用willDisplayCell方法;
  • 當(dāng)cell完全離開(kāi)屏幕以后,會(huì)調(diào)用didEndDisplayingCell
    方法,跟之前一樣,cell會(huì)進(jìn)入重用隊(duì)列.在iOS 10 之前,cell只能從重用隊(duì)列里面取出,再走一遍生命周期,并調(diào)用cellForItemAtIndexPath
    創(chuàng)建或者生成一個(gè)cell.在iOS 10 中,系統(tǒng)會(huì)cell保存一段時(shí)間,也就是說(shuō)當(dāng)用戶把cell滑出屏幕以后,如果又滑動(dòng)回來(lái),cell不用再走一遍生命周期了,只需要調(diào)用willDisplayCell
    方法就可以重新出現(xiàn)在屏幕中了.iOS 10 中,系統(tǒng)是一個(gè)一個(gè)加載cell的,二以前是一行一行加載的,這樣就可以提升很多性能;
  • iOS 10 新增加的Pre-Fetching預(yù)加載

    這個(gè)是為了降低UICollectionViewCell在加載的時(shí)候所花費(fèi)的時(shí)間,在 iOS 10 中,除了數(shù)據(jù)源協(xié)議和代理協(xié)議外,新增加了一個(gè)UICollectionViewDataSourcePrefetching
    協(xié)議,這個(gè)協(xié)議里面定義了兩個(gè)方法:

    - (void)collectionView:(UICollectionView *)collectionView prefetchItemsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths NS_AVAILABLE_IOS(10_0); - (void)collectionView:(UICollectionView *)collectionView cancelPrefetchingForItemsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths NS_AVAILABLE_IOS(10_0);

    ColletionView prefetchItemsAt indexPaths這個(gè)方法是異步預(yù)加載數(shù)據(jù)的,當(dāng)中的indexPaths數(shù)組是有序的,就是item接收數(shù)據(jù)的順序;CollectionView cancelPrefetcingForItemsAt indexPaths這個(gè)方法是可選的,可以用來(lái)處理在滑動(dòng)中取消或者降低提前加載數(shù)據(jù)的優(yōu)先級(jí).注意:這個(gè)協(xié)議并不能代替之前讀取數(shù)據(jù)的方法,僅僅是輔助加載數(shù)據(jù).Pre-Fetching預(yù)加載對(duì)UITableViewCell同樣適用.

    7.UINavigationBar

    iOS10之前的navigationBar的背景是@"_UINavigationBarBackground",到iOS10變成了@"_UIBarBackground"

    #define iOS10 ([[UIDevice currentDevice].systemVersion intValue]>=10?YES:NO) NSArray *subviews=self.navigationController.navigationBar.subviews; for (UIView *view in subviews) {if (iOS10) {//iOS10,改變了狀態(tài)欄的類為_(kāi)UIBarBackgroundif ([view isKindOfClass:NSClassFromString(@"_UIBarBackground")]) {view.hidden = YES;}}else{//iOS9以及iOS9之前使用的是_UINavigationBarBackgroundif ([view isKindOfClass:NSClassFromString(@"_UINavigationBarBackground")]) {view.hidden = YES;}} }

    —————————————我是分割線—————————————

    iOS 10 蘋(píng)果官方文檔

    進(jìn)

    給個(gè)贊喔O(∩_∩)O

    參考文章:
    iOS 日常工作之常用宏定義大全
    兼容iOS 10 資料整理筆記
    iOS開(kāi)發(fā) 適配iOS10以及Xcode8
    iOS 10 的適配問(wèn)題

    轉(zhuǎn)載于:https://my.oschina.net/fadoudou/blog/777236

    總結(jié)

    以上是生活随笔為你收集整理的iOS开发 Xcode8中遇到的问题及改动的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。