常见问题归类整理

一、关于第三方工具提交代码到SVN后,发现总是报告:静态库找不到

原因:静态库在通过第三方工具提交至SVN时,总是被忽略

解决:可以直接利用命令行提交

  1.通过命令行,打开静态库所在的路径:~ cd 静态库文件路径

  2.如果输入ls,可以查看到静态库.a文件,说明路径打开正确

  3.添加静态库文件至SVN:svn add 静态库文件.a

  4.如果添加成功则会出现:A  (bin)  静态库文件.a

 

二、创建PCH文件

 

三、项目中的Info.plist文件

 

四、Xcode快捷键

1.光标移动

control + F      // 前进一格,(向右移一格)

control + B     // 后退一格,(向左移一格)

control + P     // 前一行

control + N     // 后一行

control + A     // 移到行首

control + E     // 移到行尾

control + K      // 剪切当前行光标后面的内容

control + Y      // 把刚才剪切的内容粘帖到当前光标后面

2.操作

command + R // 运行

command + B  // 编译

3.窗口操作

command + 0                          // 隐藏/显示 左边导航栏

command + option + 0             // 隐藏/显示 右边属性栏

shift + command + Y               // 隐藏/显示 底部控制台

control + command + 方向键    // 头文件和实现文件中切换

 

五.字符属性

1.NSFontAttributeName(字体)

该属性所对应的值是一个 UIFont 对象。该属性用于改变一段文本的字体。如果不指定该属性,则默认为12-point Helvetica(Neue)。

2.NSForegroundColorAttributeName(字体颜色)

该属性所对应的值是一个 UIColor 对象。该属性用于指定一段文本的字体颜色。如果不指定该属性,则默认为黑色。

3.NSBackgroundColorAttributeName(字体背景色)

该属性所对应的值是一个 UIColor 对象。该属性用于指定一段文本的背景颜色。如果不指定该属性,则默认无背景色。

4.NSShadowAttributeName(阴影)

该属性所对应的值是一个 NSShadow 对象。默认为 nil。

 

六、Xcode7中HTTP请求报错

错误日志:Application 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.

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'data parameter is nil’

原因:iOS9在应用通讯安全策略上进行了升级,已经不再支持http这种不安全的协议

解决:在我们的Info.plist文件中添加两个键值对(字典的形式)

  <key>NSAppTransportSecurity</key>

  <dict>

      <key>NSAllowsArbitraryLoads</key>

      <true/>

  </dict>

 

七、开机启动画面

 

 

八、Xcode7的免证书真机调试

1.准备

  1)Xcode更新到7以上

  2)Apple ID(能够登录App Store的账号)

2.操作

  1)打开xcode ,在菜单栏选择Xcode-Preferences->Account ,左下角有+按钮,此处添加一个Apple ID,也就是App Store的账号

  2)账号添加成功后,我们要进行下一步,在accounts列表里就有你添加的账号了

  3)点击上图中的“View Details...”,进入该账号的详情界面

  4)这个时候需要在项目中选择,如下图

  5)按照上图点击“Fix lssue”后,就会来到下图

  6)对于需要进行真机测试的设备,你还需要进入到手机“设置”-->"通用"--->"设备管理",点击Apple ID,添加信任即可

  截止到这里,你就可以进行真机测试啦,无需其他的,任意一个苹果手机都可以真机调试。

 

九、有关开发者证书的报错

1.确认一下证书是不是看的证书,如果是发布证书就会有以下这样的提示

2.证书失效了,去开发者中心重新生成一个

 

3.包标识符与描述文件包含的包标识符不一致,按照它的提示换一下就好了,最好不要点 Fix Issue,点完后 Xcode 会自己生成一个包含统配包标识符的描述文件,并且 Remove 已经生成好的描述文件。会影响整个团队的合作

 

4.还是描述文件的问题,把发布的描述文件或者是hoc的描述文件当成开发描述文件使用了

 

5.iPhone上已经装了包标识符一样的 App,删掉App后再运行

 

6.Xcode7以上版本的无需证书真机调试问题:验证您的帐户是开发者应用证书信任你的设备。打开手机的设置,并导航到通用- >设备管理,然后选择您的开发人员应用证书信任它

 

十、iOS8调用摄像头的问题

错误日志:

  Snapshotting a view that has not been rendered results in an empty snapshot. Ensure your view has been rendered at least once before snapshotting or snapshot after screen updates.

问题分析:

  iOS8在调用系统相机拍照时,会有一两秒的停顿,然后再弹出UIImagePickConroller,IOS7是没有这个问题的。其根本原因不在于系统拍照控制器上面,而是执行presentViewController这个动作本身!我们可以查看下UIViewController这个类,他有一个属性:

1 @property(nonatomic,assign) UIModalPresentationStyle modalPresentationStyle NS_AVAILABLE_IOS(3_2);

  那么这个属性是一个枚举值,在iOS7的SDK中,定义如下:

 1 typedef NS_ENUM(NSInteger, UIModalPresentationStyle) {
 2     UIModalPresentationFullScreen = 0,
 3 #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_3_2
 4     UIModalPresentationPageSheet,
 5     UIModalPresentationFormSheet,
 6     UIModalPresentationCurrentContext,
 7 #endif
 8 #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_7_0
 9     UIModalPresentationCustom,
10     UIModalPresentationNone = -1,        
11 #endif        
12 };

  在iOS8的SDK中,定义如下:

 1 typedef NS_ENUM(NSInteger, UIModalPresentationStyle) {
 2         UIModalPresentationFullScreen = 0,
 3         UIModalPresentationPageSheet NS_ENUM_AVAILABLE_IOS(3_2),
 4         UIModalPresentationFormSheet NS_ENUM_AVAILABLE_IOS(3_2),
 5         UIModalPresentationCurrentContext NS_ENUM_AVAILABLE_IOS(3_2),
 6         UIModalPresentationCustom NS_ENUM_AVAILABLE_IOS(7_0),
 7         UIModalPresentationOverFullScreen NS_ENUM_AVAILABLE_IOS(8_0),
 8         UIModalPresentationOverCurrentContext NS_ENUM_AVAILABLE_IOS(8_0),
 9         UIModalPresentationPopover NS_ENUM_AVAILABLE_IOS(8_0),
10         UIModalPresentationNone NS_ENUM_AVAILABLE_IOS(7_0) = -1,         
11 };

  我们可以发现在iOS8中多了一个UIModalPresentationOverCurrentContext

解决问题:

  在控制器present时需要设置一下属性:

1 if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
2     self.modalPresentationStyle = UIModalPresentationOverCurrentContext;
3 }
posted @ 2017-11-16 09:47  Frank9098  阅读(500)  评论(0)    收藏  举报