文档章节

iOS开发 之 问题集结号

琳小兮
 琳小兮
发布于 2015/03/02 15:59
字数 1092
阅读 720
收藏 0
  • iOS simulator运行程序出现问题:An error was encountered while running (Domain = FBSOpenApplicationErrorDomain, Code = 4)

  • 解决办法:iOS Simulator----> Reset Contents and Settings ----> Reset(其实就是还原模拟器-_-!!!)

  • xcode6中添加pch文件:

  • 1.Command + N 然后在Other里面选择PCH File --- >Next --->Save As(这里写工程名字格式为xxx.pch)--->Create

  • 2.在Build Settings里面找到Prefix Header,双击添加pch文件路径,格式为是 xxx/xxx.pch

  • ios8tableView分割线左边空白问题 ---viewdidload里面调用[self viewDidLayoutSubviews];方法

  • -(void)viewDidLayoutSubviews
    {
        if ([myTableView respondsToSelector:@selector(setSeparatorInset:)]) {
            [myTableView setSeparatorInset:UIEdgeInsetsMake(0,0,0,0)];
        }
        
        if ([myTableView respondsToSelector:@selector(setLayoutMargins:)]) {
            [myTableView setLayoutMargins:UIEdgeInsetsMake(0,0,0,0)];
        }
    }
    
    -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
            [cell setSeparatorInset:UIEdgeInsetsZero];
        }
        
        if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
            [cell setLayoutMargins:UIEdgeInsetsZero];
        }
    }
  • 报错:Link against the umbrella framework 'System.framework' instead. for architecture x86_64

  • 在用x6写gcd的时候,由于没有代码提示,误以为x6里面没有了libdispatch.dylib框架,所以导入了,然后报上面的错误,又继续导入了libSystem.dylib框架,仍然报如上错误。于是把刚才导入的两个框架删掉了,然后没问题了,总结就是x6代码提示的问题。

  • 报错:Dwarf Exception Unwind Info (__eh_frame) in AppDelegate.o

  • 加上libc++.dylib,问题解决

  • 报错:Unknown type name “CGFloat” 或者 Unknown type name 'UIColor'

  • 我的是extern const引起的,在使用到extern const的类里面添加头文件#import <UIKit/UIKit.h>就行了

  • Xcode6编译SDWebImage报错:Use of undeclared identifier '_executing';Use of undeclared identifier '_finished'; 

  • 解决办法:在SDWebImageDownloaderOperation.m下面的

  • @implementation SDWebImageDownloaderOperation{}下面添加如下代码:

  • @synthesize executing = _executing ;

  • @synthesize finished = _finished;

  • xcode6.0以后地图无法定位的问题

  •  //在ios 8.0上要授权
            if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
            {
                [myLocationManager requestWhenInUseAuthorization];  //调用了这句,在程序前台运行的时候,就会弹出允许框了允许定位
                //            [myLocationManager requestAlwaysAuthorization];//程序前台后台运行一直允许定位
            }
  • 记住要在info.plist里面添加缺省字段NSLocationWhenInUseUsageDescription或者NSLocationAlwaysUsageDescription(具体添加哪个根据你上面设置而定)

  • iOS8系统下的无法弹出通知:Attempting to schedule a local notification ,with an alert but haven't received permission from the user to display alerts,with a sound but haven't received permission from the user to play sounds

  • 原因在于iOS8系统变更了注册方法,需要在ApplicationDelegate里面注册通知才可以。

  • 再appdelegate.m的didFinishLaunchingWithOptions方法里面,添加如下代码:

  • if ([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)])
        {
            [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];
        }
  • ios8系统下的推送:registerForRemoteNotificationTypes: is not supported in iOS 8.0 and later 

  • // IOS8系统以后需要这么写
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
    {
        [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings 
         settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge)      
    categories:nil]];
    
    
        [[UIApplication sharedApplication] registerForRemoteNotifications];
    }
    else
    {
    //这里还是原来的代码
        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
         (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)];
    }

运行报错:No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).

解决办法:这是缺少arm64的原因导致,需要在下图两个地方的valid architectures里面添加上arm64

报错:could not build module 'Foundation'

解决方法:在Build Settings 下的 Apple LLVM xxx - Language (xxx代表的是你当前的xcode默认的LLVM编译器版本),找到Compile Sources As ,将其改成 Objective-C即可。默认的是第一个“According to File Type”,如此修改的意思是把工程按照哪一种语言进行编译,可根据实际情况选择编译语言。

报错:library not found for -

出现此种错误的原因是因为,我们工程里面使用的第三方库。当xcode进行编译的时候,没有找到此库文件。所以,我们需要在Build Settings下面的Search Paths里面的Library Search Paths中添加该库所在的文件夹的路径。这样编译的时候就可以找到该库了。

报错:[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object'

将NSMutableDictionary *uuDic = [ [NSUserDefaults standardUserDefaults] objectForKey:@"mycollect"];改成NSMutableDictionary *uuDic = [NSMutableDictionary dictionaryWithDictionary:[ [NSUserDefaults standardUserDefaults] objectForKey:@"mycollect"]];

报错:[UIImage imageWithRenderingMode:]: unrecognized selector sent to instance 0x2017c720

[UIImage imageWithRenderingMode:]这个方法在ios7以上的版本里面才支持,所以需要判断一下当前的系统版本

报错:Multiple build commands for output file /xxx

选中工程,点击 Build Phases, 展开Copy Bundle Resources,删除里面的刚才提示警告的文件,一般为红色的名字的文件。 或者有多个相同的文件,删除一个多余的。

警告:Block implicitly retains 'self'; explicitly mention 'self' to indicate this

选中工程,点击 Building Settings ,搜索 implicit retain of 'self' ,将对应的值改为NO

报错:Safe Area Layout Guide before iOS 9.0

© 著作权归作者所有

共有 人打赏支持
上一篇: ps笔记
琳小兮
粉丝 30
博文 37
码字总数 20169
作品 0
襄阳
程序员
私信 提问
iOS 8 Beta 6 发布,即将进入 GM

苹果软件测试伙伴已经获得了全新 iOS 测试版,也就是传说中的 iOS 8 Beta 6。最新的 iOS 8 测试版修正了 iOS 8 beta 5中的大量问题,看起来苹果并不会向注册开发者发布这个版本。不过消息人士...

oschina
2014/08/20
1K
5
极光开发者沙龙 JIGUANG MEETUP——iOS 技术综合实践

活动背景 相信各位 iOSer 已经在 WWDC 结束后亲身体验过相关的技术。今年 WWDC 后,开发者们要适配的工作并不像以前那么繁重,在各大论坛中也可以搜到相关的技术实战分享。但因为每个公司的技...

极光推送
2017/10/24
1
0
win2008 Server R2 中IIS启用TLS 1.2

微信企业号发布公告, 从2017年1月1日起 App Store中的所有应用都必须启用 App Transport Security安全功能。App Transport Security(ATS)是苹果在iOS 9中引入的一项隐私保护功能,屏蔽明文...

zhangyahui7116
06/26
0
0
OSC 第 63 期高手问答 —— iOS 开发进阶

OSCHINA 本期高手问答( 3月17日- 3月21日)我们请来了@唐巧 为大家解答关于 iOS 开发 方面的问题。 @唐巧 ,Blogger、InfoQ 编辑,资深 iOS 开发者。曾在网易参与过网易邮箱、网易微博、有道云...

叶秀兰
2015/03/17
3.5K
39
好坏美丑,开发者眼中的 iOS 7

跟着新 iPhone 发布的节奏,iOS 史上转变最大的 iOS 7 将要在苹果的各类新产品上大展拳脚了。从消费者眼里看来,这种转变是拟物化向扁平化的转变和新加入的控制中心等。但是对于开发者而言,...

oschina
2013/08/29
5.3K
42

没有更多内容

加载失败,请刷新页面

加载更多

关于MySQL 通用查询日志和慢查询日志分析

MySQL中的日志包括:错误日志、二进制日志、通用查询日志、慢查询日志等等。这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志。 1)通用查询日志:记录建立的客户端连接和执行的...

瑞查德-Jack
17分钟前
0
0
Vue组件封装 参数传递和事件传递

参数传递 子组件先定义好接收的参数和事件 <div > {{title}} <div class="row"> <Button icon="md-refresh" @click="refresh()" >刷新</Button> </div>......

Carbenson
22分钟前
0
0
如何在10分钟内设置EOS钱包和帐户?

由于SuperNode超级节点社区建立在EOS之上,我们希望引导我们的社区成员设置EOS钱包和帐户,以便充分参与我们的生态系统。 虽然设置过程可能不如其他区块链系统那么简单,但不要担心。本指南旨...

笔阁
26分钟前
2
0
8.04-Win10非U盘重装系统

注意:最好准备一个你所需版本的秘钥(不能是数字0开头的) 【所需:Win10的ISO镜像、能够解压ISO格式的解压缩工具、最好准备你所需版本的秘钥(不能是数字0开头的)】 1、创建新的文件系统为...

静以修身2025
27分钟前
1
0
Docker的架构与自制镜像的发布

一. docker 是什么 大家都知道虚拟机吧,windows 上装个 linux 虚拟机是大部分程序员的常用方案。公司生产环境大多也是虚拟机,虚拟机将物理硬件资源虚拟化,按需分配和使用,虚拟机使用起来...

程序猿拿Q
43分钟前
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部