iOS 筆記

一. 點(diǎn)擊uiscrollview的子視圖呆瞻,即使不產(chǎn)生滑動(dòng)径玖,總是會(huì)走- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

測(cè)試發(fā)現(xiàn):

  • 如果是代碼創(chuàng)建的scrollview痴脾,在scrollview上面添加子視圖button,點(diǎn)擊button,不產(chǎn)生滑動(dòng),并不會(huì)走scrollViewDidEndDecelerating
  • 如果是xib創(chuàng)建的scrollview,點(diǎn)擊button,即使不產(chǎn)生任何滑動(dòng)芽狗,總是會(huì)走scrollViewDidEndDecelerating顾复,即使添加的是其他子視圖uiview,也是一樣。這種情況包帚,只需要取消scrollview.pagesnable=yes拘哨,就可以了倦青。是不是xib多設(shè)置了什么東西峭沦,沒(méi)搞明白菇肃。

二. xib自定義的控件,用純代碼加載质礼,報(bào)錯(cuò)找不到xib控件拉好的IBOutlet屬性

  • 報(bào)錯(cuò):
    *** Terminating app due to uncaught exception   'NSUnknownKeyException',
    reason: '[<UIView  0x12e80adb0> setValue:forUndefinedKey:]: 
    this class is  not key value coding-compliant for the key searchBtn
    
  • xib控件File`s Owner關(guān)聯(lián)的類取消刽宪,改由view關(guān)聯(lián)對(duì)應(yīng)的類
  • xib的屬性全部重新拉線(由File`s Owner改為view關(guān)聯(lián),拉線的屬性不改還是會(huì)報(bào)錯(cuò))
  • xib控件是作為另一個(gè)xib的子視圖凭疮,不是由代碼加載,不用改

三. scrollview滑動(dòng)卡住,也不崩潰觅赊。

  • (void)layoutSubviews不要做任何frame的更新,因?yàn)閟crollview滑動(dòng)會(huì)一直調(diào)用- (void)layoutSubviews,里面做frame更新堕花,又會(huì)反過(guò)來(lái)調(diào)用- (void)layoutSubviews,就會(huì)一直卡在這個(gè)方法里

四.scrollview里面添加button或者其他控件摹蘑,不能點(diǎn)擊

  • 是因?yàn)閟crollview加了撐開(kāi)的contentview,button又加載contentview上敞映,contentview高度或者寬度顯示不下button,導(dǎo)致點(diǎn)擊傳遞事件到了contentview就找不到下層的button了伏恐。
  • 層級(jí)關(guān)系: scrollview-> contentview->button孩哑,contentview的size裝載不下button。傳遞事件斷裂

五. tablefooterview的按鈕不能點(diǎn)擊

  • 很多帖子講是tabletooterview``的高度不夠翠桦,這其實(shí)是個(gè)很明顯的問(wèn)題横蜒,跟上面第四條```道理一樣。
  • 但其實(shí)销凑,我有次明顯設(shè)置了footerview的高度丛晌,也看了層級(jí)關(guān)機(jī),沒(méi)有被遮擋斗幼。后來(lái)發(fā)現(xiàn)澎蛛,原來(lái)是設(shè)置了漸變色的原因,因?yàn)闈u變色是用layer去實(shí)現(xiàn)的蜕窿,直接把漸變色layer加在button上谋逻,會(huì)遮擋button文字顯示。所以寫(xiě)了個(gè)分類桐经,漸變色layer加載一個(gè)bgview上毁兆,再把bgview加在button的最底層。這樣就可以實(shí)現(xiàn)漸變色背景的按鈕阴挣。但是F椤!E线帧茎芭!我們點(diǎn)擊的響應(yīng),也直接點(diǎn)擊在bgview上盒卸,所以button接收不到響應(yīng)鏈。解決辦法次氨,bgView.isUserInteractionEnabled = false/或者self.colorView.userInteractionEnabled = NO蔽介。部分代碼如下:
    let gradientLayer = CAGradientLayer()
    gradientLayer.frame = self.bounds
    gradientLayer.colors = array
    gradientLayer.locations = [0.0,1.0]
    gradientLayer.startPoint = CGPoint.init(x: 0, y: 0.5)
    gradientLayer.endPoint = CGPoint.init(x: 1, y: 0.5)
              
    let bgView = UIView(frame: self.bounds)
    bgView.isUserInteractionEnabled = false //不設(shè)置這句,button的點(diǎn)擊是點(diǎn)擊在bgview上
    self.addSubview(bgView)
    self.sendSubviewToBack(bgView)
    bgView.layer.addSublayer(gradientLayer)
    

五. tableview.tableFooterView和tableview.tableHeaderView的高度或者寬度有問(wèn)題煮寡。

  • tableview.tableFooterView要初始化frame
  • tableview.tableFooterView不能直接=self.footerView虹蓄,解決辦法,先賦值一個(gè)view幸撕,再讓view addsubview薇组,如下:
  UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 700)];
  [view addSubview:self.footerView];
  tableview.tableFooterView = view
  • tableview.tableHeaderView同理

六.@property (getter=isActive) BOOL active,設(shè)置yes/no坐儿,不生效

  • 我遇到的情景是律胀,做聊天氣泡時(shí)宋光,xib上拉label的left和right約束,根據(jù)內(nèi)容決定label的left或者right約束的active是yes還是no炭菌,從而決定label是靠左還是右罪佳。然后有時(shí)候會(huì)出現(xiàn)label左右位置混亂。解決:
    • 拉lable的left或者right作為屬性時(shí)黑低,是weak修飾赘艳,改為strong就可以了(個(gè)人猜測(cè),當(dāng)active=no時(shí)克握,約束不生效的原因蕾管,其實(shí)就是移除了該約束,然而因?yàn)槭莣eak修飾菩暗,當(dāng)再次設(shè)置該約束active=yes時(shí)掰曾,其實(shí)該約束已經(jīng)不存在了,所以更改strong修飾后勋眯,再次修改active=yes婴梧,還是能生效)。

七客蹋。更改狀態(tài)欄顏色問(wèn)題(-(UIStatusBarStyle)preferredStatusBarStyle不調(diào)用問(wèn)題)

  • 在info.plist 中 View controller-based status bar appearance 一定要改為為 YES

  • navigationcontroller中添加:

    - (UIViewController *)childViewControllerForStatusBarStyle {
     return self.topViewController;
    }
    
  • 每個(gè)Viewcontroller中添加:

    -(UIStatusBarStyle)preferredStatusBarStyle
     {
     return UIStatusBarStyleDarkContent;
     }
    
  • 需要注意塞蹭,如果有導(dǎo)航欄navigationcontroller,狀態(tài)欄顏色由導(dǎo)航欄統(tǒng)一管理讶坯,事實(shí)上由導(dǎo)航欄管理也最好番电。如果需要單獨(dú)改變某個(gè)狀態(tài)欄,就單獨(dú)在那個(gè)控制器實(shí)現(xiàn)preferredStatusBarStyle

  • 狀態(tài)一直是白色辆琅,怎么也改不到黑色:暗黑模式下無(wú)法設(shè)置為黑色漱办,關(guān)閉暗黑模式 info.plist-->Appearance = Light。關(guān)閉之后再檢查preferredStatusBarStyle返回的是深色字體還是白色字體婉烟。

八娩井。使用UINavigationController,控制器self.view距離頂部的距離似袁,一會(huì)高洞辣,一會(huì)低董饰。(UICollectionView/UITableView頂部會(huì)留白的解決辦法)

  • 場(chǎng)景:從控制器A塔猾,進(jìn)入控制器C卡睦,C的self.view是全屏残拐,距離頂部是0堪旧。從控制器B吨掌,進(jìn)入控制器C洒扎,C的self.view距離頂部有個(gè)一導(dǎo)航欄的高度瓣履。這就導(dǎo)致控制器C寫(xiě)這樣的布局啼县,也會(huì)變化:
  [_headerView mas_makeConstraints:^(MASConstraintMaker *make) {
     make.top.equalTo(self.view).offset(0);
  }];
  • 原因:設(shè)置.translucent這個(gè)屬性材原,會(huì)影響UIViewcontroller的布局:
    • .translucent = NO沸久,導(dǎo)航欄取消毛玻璃效果(導(dǎo)航欄設(shè)置什么顏色就是什么顏色,可以理解為會(huì)遮擋下一層的self.view)华糖,self.view的原點(diǎn)是從導(dǎo)航欄左下角開(kāi)始計(jì)算麦向。
    • .translucent = YES,導(dǎo)航欄顯示毛玻璃效果(導(dǎo)航欄會(huì)有一層模糊的半透明的毛玻璃效果客叉,可以理解為诵竭,即使第一層從導(dǎo)航欄滾過(guò),也會(huì)看到一點(diǎn)點(diǎn)兼搏,不會(huì)遮擋self.view)卵慰,self.view的原點(diǎn)是從導(dǎo)航欄左上角開(kāi)始計(jì)算。
  • 解決:在哪個(gè)控制器設(shè)置過(guò)self.navigationController.navigationBar.translucent = NO佛呻,就在這個(gè)控制器viewWillDisappear中裳朋,設(shè)置回來(lái)(self.navigationController.navigationBar.translucent = YES)
  • 或者直接設(shè)置:(self.collectionview/self.tableview頂部會(huì)留白的解決辦法)
    if (@available(iOS 11, *)) {
     self.collectionView.contentInsetAdjustmentBehavior  =     UIScrollViewContentInsetAdjustmentNever;
    }else{
     self.automaticallyAdjustsScrollViewInsets = NO;
    }
    

九。兩個(gè)UICollectionView嵌套吓著,都使用MJRefresh鲤嫡。滑動(dòng)方向沖突

  • 場(chǎng)景:UICollectionView(A)和UICollectionView(B)绑莺。A是橫向滾動(dòng)暖眼,每個(gè)cell是當(dāng)前控制器的view大小。B是縱向滾動(dòng)的瀑布流布局纺裁,加載A的cell上诫肠。
    這個(gè)時(shí)候在屏幕上斜方向滑動(dòng),會(huì)產(chǎn)生AB同時(shí)一起斜方向滑動(dòng)欺缘。按照?qǐng)鼍靶枨蠖霸ィ瑧?yīng)該是要么縱向滾動(dòng)瀑布流,要么橫向滾動(dòng)頁(yè)面谚殊。
  • 原因:后來(lái)看了MJRefresh源碼丧鸯,大概是,他給UICollectionView加了一個(gè)滑動(dòng)手勢(shì)嫩絮,滑動(dòng)時(shí)候丛肢,把scrollviewcontentInset還是contentOffset來(lái)著,把它的值改變絮记,形成繼承于scrollview的視圖也跟著手勢(shì)滑動(dòng)的效果摔踱。
    • 至于為什么一個(gè)collectionview不會(huì)斜方向滑動(dòng)虐先,兩個(gè)嵌套就會(huì)斜方向滑動(dòng)怨愤,就沒(méi)有深入追究了
  • 解決:
    • 要么AB,只留一個(gè)使用MJRefresh蛹批。上拉刷新下拉加載的功能也就只能添加在A或者B上撰洗。
    • 要么就把A或者Bmj_headermj_footer給移除掉篮愉,其實(shí)產(chǎn)生的效果等同于上面。

十.UITableView差导,用masnory布局約束试躏,發(fā)現(xiàn)底部往下偏移了,也就是底部有部分顯示不了

  • 場(chǎng)景:這個(gè)情況比較特殊设褐,不具備普遍化颠蕴,自己碰到過(guò),記下來(lái)助析。因?yàn)樯厦娴?code>九條原因犀被,所以自己在自定義TableView基類的時(shí)候,會(huì)用一個(gè)方法禁止掉MJRefresh功能:
    self.mj_header?.scrollView?.bounces = false
    self.mj_footer?.scrollView?.bounces = false
    self.mj_header?.scrollView?.contentInset = .zero
    self.mj_footer?.scrollView?.contentInset = .zero
    self.mj_header?.endRefreshing()
    self.mj_footer?.endRefreshing()
    self.mj_footer?.removeFromSuperview()
    self.mj_header?.removeFromSuperview()
    

然而外冀,在不需要刷新功能的界面寡键,為了防止出現(xiàn)布局混亂,調(diào)用了上面這個(gè)方法雪隧,結(jié)果就出現(xiàn)tableview底部西轩,被屏幕遮住了。而檢查約束條件make.edges.equalToSuperview()脑沿,這完全沒(méi)問(wèn)題藕畔。

  • 原因:打開(kāi)層級(jí)顯示,定位TableView,發(fā)現(xiàn)這段話:
baseClass = UITableView; frame = (0 64; 375 603); clipsToBounds = YES; 
contentOffset: {0, 198}; contentSize: {375, 845}; adjustedContentInset: {0, 0, -44, 0}; 

contentOffset: {0, 198}捅伤,這說(shuō)明tableview無(wú)緣無(wú)故往下移動(dòng)了198劫流。這是什么原因?

  • 解決:無(wú)意中丛忆,注釋掉上面說(shuō)的基類tableview中的禁止MJRefresh功能方法中的祠汇,兩行代碼,解決了熄诡!而且層級(jí)定位發(fā)現(xiàn)contentOffset: {0, 0}
       就是注釋了這兩行代碼
       //self.mj_header?.scrollView?.contentInset = .zero
       //self.mj_footer?.scrollView?.contentInset = .zero
    
  • 思考:為什么可很,MJRefresh中的mj_header/mj_footer,禁止scrollView?.contentInset凰浮,會(huì)導(dǎo)致UITableView的contentOffset: {0, 198}我抠,MJRefresh做了什么?
  • 探究:
    • 原來(lái)self.mj_header?.scrollView?等于self.mj_header?.superView等于self(tableView)
    • 然而,斷點(diǎn)打印如下:
      (lldb) po self.mj_header?.scrollView?.contentInset
      ? Optional<UIEdgeInsets>
      ? some : UIEdgeInsets
      - top : 0.0
      - left : 0.0
      - bottom : 44.0
      - right : 0.0       
      
    • 所以袜茧,注釋掉那兩行代碼菜拓,就是讓tableview.contenInset,由系統(tǒng)建立的距離底部的值bottom=44(正常顯示)變成bottom=0(被遮擋一部分)笛厦,可不就是遮擋了嘛
  • 最后:至于為什么不注釋那兩行纳鼎,contentOffset: {0, 0},注釋掉就變成contentOffset: {0, 198}。有待考證

十一.UICollectionView截屏贱鄙,顯示不全問(wèn)題

  • 場(chǎng)景: 自定義布局的UICollectionView劝贸,cell是xib,一個(gè)section只有一個(gè)item逗宁。需要截取全部collectionView映九,生成圖片分享。截屏代買(mǎi)如下:
    let frame = collectionView.frame
    UIGraphicsBeginImageContextWithOptions(collectionView.contentSize, false, 0)
    collectionView.layer.frame = CGRect(x:0, y:0, width:kUIScreenWidth, height:collectionView.contentSize.height)
    collectionView.layer.render(in: UIGraphicsGetCurrentContext()!)
    let collectionViewImg = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    collectionView.frame = frame
    return  collectionViewImg
    
  • 問(wèn)題:上面代碼瞎颗,只會(huì)截取已經(jīng)出現(xiàn)在屏幕的cell件甥,對(duì)于未出現(xiàn)的cell,截取的空的哼拔。
  • 原因:
    • 原來(lái)在基類控制器設(shè)置過(guò):
      self.navigationController?.navigationBar.isTranslucent = false
      
    • isTranslucent = false 設(shè)置帶來(lái)的直接結(jié)果是嚼蚀,控制器的頂部屏幕的頂部距離一個(gè)導(dǎo)航欄的高度
    • 也會(huì)導(dǎo)致截屏?xí)r,對(duì)于未展示過(guò)的cell管挟,不會(huì)調(diào)用datasource去加載cell轿曙,所以未展示過(guò)的cell的layer,自然是空白的僻孝。(為什么會(huì)這樣导帝,不得而知)
    • isTranslucent 其他的影響

十二. UICollectionView反向序列排列

  • 場(chǎng)景:layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;下,collectionview滾動(dòng)是從右往左滾動(dòng)的穿铆,那么如果從坐往右滾動(dòng)呢您单?比如滑動(dòng)翻日歷,往往進(jìn)去就是默認(rèn)最近的日歷荞雏,往前翻虐秦,就需要反向排列了。
  • 解決:自定義UICollectionViewFlowLayout,全部代碼如下:
    #import "RCalendarLayout.h"
    
    @implementation RCalendarLayout
    ///決定flowyout是否能主動(dòng)選擇其他滾動(dòng)方向凤优,默認(rèn)NO
    - (BOOL)flipsHorizontallyInOppositeLayoutDirection
    {
      return YES;
    }
    ///決定flowyout的滾向,默認(rèn)是LeftToRight
    - (UIUserInterfaceLayoutDirection)developmentLayoutDirection
    {
      return UIUserInterfaceLayoutDirectionRightToLeft;
    }
    @end
    
  • 這兩個(gè)方法的理解可能有誤悦陋,最好點(diǎn)進(jìn)原方法,看注釋筑辨。

十三. UICollectionView的UICollectionElementKindSectionHeader俺驶,設(shè)置在Cell的背后。

  • 默認(rèn)自定義UICollectionElementKindSectionHeader的時(shí)候棍辕,會(huì)在cell的上層暮现,如果要cell遮擋sectionHeader的效果,就要自定義UICollectionViewFlowLayout楚昭,具體方法如下:
     - (NSArray<__kindof UICollectionViewLayoutAttributes *>  *)layoutAttributesForElementsInRect:(CGRect)rect
    {
        NSArray *attributes  = [[super layoutAttributesForElementsInRect:rect] copy];
        for (UICollectionViewLayoutAttributes *attr in attributes) {
        CGRect frame = attr.frame;
        if (frame.size.height < 300) {
            CGPoint origin = frame.origin;
            origin.y = origin.y - 60;
            frame.origin = origin;
            attr.frame = frame;
            attr.zIndex = attr.indexPath.row + 1;///此屬性是關(guān)鍵栖袋,cell.zIndex 最小值是1,依次遞增
        }else{
            attr.zIndex = 0;///此屬性是關(guān)鍵抚太,sectionheader.zIndex 永遠(yuǎn)是0
         }
       }
      return  attributes; }
    

十四. UITableView的tableHeaderView | sectionHeaderView留白解決方法

  • 方法1:tableHeaderView: 一般解決辦法(帶有導(dǎo)航欄)

    ///self=UIViewController
    ///tableView.tableViewStyle = UITableViewPlan
    
    if #available(iOS 11.0, *) {
             tableView.contentInsetAdjustmentBehavior = .never
         } else {
             self.automaticallyAdjustsScrollViewInsets = false
         }
    
  • 方法2: 我的場(chǎng)景是:沒(méi)有導(dǎo)航欄塘幅,tableView.tableViewStyle = UITableViewGroup菇怀,設(shè)置方法1后,還是留白晌块。

    • 需要再加上以下屬性:
      其實(shí)就是要設(shè)置tableView的sectionHeaderViewtableHeaderView的高度
       tableView.tableHeaderView = UIView(frame:.zero)
       # 如果上面不生效,則用下面方法試試
      self.tableView.tableHeaderView = UIView(frame:CGRect(x:0, y:0, width:0.01, height: 0.01))
      self.tableView.tableFooterView = UIView(frame:CGRect(x:0, y:0, width:0.01, height: 0.01))
      
  • 方法3: 我的場(chǎng)景是:頂部空白高度=22,(沒(méi)有導(dǎo)航欄帅霜,tableView.tableViewStyle = UITableViewPlain),iphone8,ios16.1,

     if #available(iOS 15.0, *) {
            self.tableView.sectionHeaderTopPadding = 0
     } else { }
    
  • 其他類似的問(wèn)題匆背,可能會(huì)誤導(dǎo)致頂部有一段小留白的:

    • sectionHeaderView: 也有個(gè)類似的場(chǎng)景:tableview的style = .group時(shí),sectionHeaderView的高度身冀,會(huì)有默認(rèn)的一段高度钝尸。即使設(shè)置了delegatesectionHeaderView的高度return 0不生效。return = 0.01生效搂根。
    • sectionFooderView同上珍促。
    • 小結(jié):在某些iOS版本中,tablestyle = .group場(chǎng)景下剩愧,無(wú)論是tableHeaderView還是sectionHeaderView猪叙,對(duì)其相應(yīng)的方法設(shè)置高度=0,都無(wú)效仁卷,需要設(shè)置高度=0.01

十五.關(guān)于切圓角不生效問(wèn)題

  • 下面代碼不生效問(wèn)題:
     cell.contentView.cornerRadius = 10;
     cell.contentView.layer.masksToBounds = YES;
    
  • 檢查cell的顏色穴翩,color會(huì)影響layer。某種情況下發(fā)現(xiàn)锦积,xib設(shè)置的cell芒帕,如果背景顏色是默認(rèn)的,上面呢代碼不會(huì)生效丰介。
  • 設(shè)置圓角加陰影背蟆,用以上方法,會(huì)產(chǎn)生離屏渲染哮幢,用下面方法:
    let bounds = CGRect(x:0, y: 0, width:w, height: 216.0/162*w)
    self.layer.shadowPath = UIBezierPath(roundedRect:bounds, byRoundingCorners:[.topLeft,.topRight,.bottomLeft,.bottomRight], cornerRadii: CGSize(width:4, height: 4)).cgPath
    self.layer.shadowColor = "#CFCFCF".color().cgColor
    self.layer.shadowOffset = CGSize(width: 0, height: 0)
    self.layer.shadowRadius = 4
    self.layer.shadowOpacity = 1
    self.layer.cornerRadius = 4
    self.layer.masksToBounds = false ///一定要設(shè)置這個(gè)
    

十六.UITextView帶link的富文本带膀,下劃線和link字符串顏色設(shè)置問(wèn)題

let text = "By clicking start, you agree to our Terms and Conditions and Privacy Statement.".attri(UIFont.systemFont(ofSize: 14), "#E2665C".color())
var attri = [.underlineStyle:NSUnderlineStyle.single.rawValue,.underlineColor:"#E2665C".color(),.link:"privacy"] as [NSAttributedString.Key : Any]
var attri2 = [.underlineStyle:NSUnderlineStyle.single.rawValue,.underlineColor:"#E2665C".color(),.link:"agreement"] as [NSAttributedString.Key : Any]

text.addAttributes(attri, range: NSRange(location:36, length: 20))
text.addAttributes(attri2, range: NSRange(location: 61, length: 18))
        
self.agreement.attributedText = text
self.agreement.linkTextAttributes = [.foregroundColor:"#E2665C".color()]

十七.XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a

  • error:
SDK does not contain 'libarclite' at the path
'/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a';
try increasing the minimum deployment target 
  • 原因: Xcode 14.3移除了arc目錄,因?yàn)閄code 14支持的最低部署目標(biāo)iOS 11, 最低部署版本的系統(tǒng)都已經(jīng)內(nèi)置了ARC相關(guān)的庫(kù), 我們只需要將第三方庫(kù)部署目標(biāo)的iOS版本設(shè)置成和應(yīng)用最低部署目標(biāo)的iOS版本即可
  • 解決方法1: 原方法摘自這試過(guò),并不能統(tǒng)一解決第三方庫(kù)的目標(biāo)最低部署版本
post_install do |installer|
  installer.generated_projects.each do |project|
    project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0' #9.0
         end
    end
  end
end

但是橙垢,我的Podfile本砰,加上上面方法,會(huì)報(bào)很多錯(cuò)誤8直5愣睢!

  • 解決方法2: 根據(jù)上面所說(shuō)莺琳,將第三方庫(kù)的最低部署iOS的版本还棱,改到ios11以上就可以了
    • Xcode 左側(cè)文件欄最頂部,有個(gè)??號(hào)的按鈕惭等,點(diǎn)擊珍手,找到報(bào)錯(cuò)的第三方庫(kù)
    • 左側(cè)文件欄,點(diǎn)擊Pods.xcodeproj->Targets->對(duì)應(yīng)三方庫(kù)->General->修改Minimum Deployments = iOS11以上
  • 解決方法3: 既然最新的xcode沒(méi)有這arc個(gè)文件夾,那 下載arc文件夾琳要,放到對(duì)應(yīng)路徑下就可以了

    • 進(jìn)入路徑/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/寡具。
    • 下載arc文件夾,放到lib/下
    • 如果有arc文件夾稚补,那么就下報(bào)錯(cuò)對(duì)應(yīng)的libarclite_iphonesimulator.a童叠,放到arc文件夾下
    • arc文件夾和對(duì)應(yīng)的x x x.a庫(kù)文件,到別的xcode路徑下粘貼復(fù)制

十八.Command PhaseScriptExecution failed with a nonzero exit code

  • 該報(bào)錯(cuò)有一定概率是cocoapods 的問(wèn)題课幕,可以試試升級(jí)版本:
    • 更新gem:sudo gem update --system

    • 下載最新版本:sudo gem install -n /usr/local/bin cocoapods --pre

19. Showing Recent Errors Only Sandbox: rsync.samba(93467) deny(1) file-write-create

  • 現(xiàn)象:Showing Recent Errors Only Sandbox: rsync.samba(93467) deny(1) file-write-create /../../../xxxx類似的問(wèn)題厦坛。
  • 解決:Xcode ->target->building setting:ENABLE_USER_SCRIPT_SANDBOXING=
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末乍惊,一起剝皮案震驚了整個(gè)濱河市杜秸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌润绎,老刑警劉巖撬碟,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異莉撇,居然都是意外死亡小作,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)稼钩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)顾稀,“玉大人,你說(shuō)我怎么就攤上這事坝撑【哺眩” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵巡李,是天一觀的道長(zhǎng)抚笔。 經(jīng)常有香客問(wèn)我,道長(zhǎng)侨拦,這世上最難降的妖魔是什么殊橙? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮狱从,結(jié)果婚禮上膨蛮,老公的妹妹穿的比我還像新娘。我一直安慰自己季研,他們只是感情好敞葛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著与涡,像睡著了一般惹谐。 火紅的嫁衣襯著肌膚如雪持偏。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,737評(píng)論 1 305
  • 那天氨肌,我揣著相機(jī)與錄音鸿秆,去河邊找鬼。 笑死怎囚,一個(gè)胖子當(dāng)著我的面吹牛卿叽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播桩了,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼埠戳!你這毒婦竟也來(lái)了井誉?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤整胃,失蹤者是張志新(化名)和其女友劉穎颗圣,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體屁使,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡在岂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蛮寂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蔽午。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖酬蹋,靈堂內(nèi)的尸體忽然破棺而出及老,到底是詐尸還是另有隱情,我是刑警寧澤范抓,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布骄恶,位于F島的核電站,受9級(jí)特大地震影響匕垫,放射性物質(zhì)發(fā)生泄漏僧鲁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一象泵、第九天 我趴在偏房一處隱蔽的房頂上張望寞秃。 院中可真熱鬧,春花似錦偶惠、人聲如沸蜕该。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)堂淡。三九已至馋缅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绢淀,已是汗流浹背萤悴。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留皆的,地道東北人覆履。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像费薄,于是被迫代替她去往敵國(guó)和親硝全。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • *7月8日上午 N:Block :跟一個(gè)函數(shù)塊差不多楞抡,會(huì)對(duì)里面所有的內(nèi)容的引用計(jì)數(shù)+1伟众,想要解決就用__block...
    炙冰閱讀 2,489評(píng)論 1 14
  • 1、禁止手機(jī)睡眠 [UIApplication sharedApplication].idleTimerDisab...
    小小夕舞閱讀 1,461評(píng)論 1 1
  • 1召廷、登錄(文本輸入凳厢、按鈕交互、基于網(wǎng)絡(luò)的交互) 2竞慢、刷新界面:(表視圖) 1>小部分應(yīng)用程序數(shù)據(jù)來(lái)源于本地 2>更...
    炙冰閱讀 774評(píng)論 0 1
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)先紫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,107評(píng)論 4 62
  • 1. Object-c的類可以多重繼承么?可以實(shí)現(xiàn)多個(gè)接口么?Category是什么?重寫(xiě)一個(gè)類的方式用繼承好還是...
    失憶的程序員閱讀 642評(píng)論 0 1