关于适配Xcode6的一些问题

1. xcode6之后,默认生成的项目不再有prefix.pch这个预编译文件了。可以手工添加,方法为:

首先,Command+N,打开新建文件窗口:ios->other->PCH file,创建一个pch文件,添加需要引入的头文件名: 

其次,修改工程配置文件,将刚刚创建的PCH file的路径添加到building setting中的precompile header选项中去,注意debug和release两栏都要添加,这样该PCH文件就能向以前一样自动编译了:

 

至此,大功告成,编译一遍,新添加的pch文件就可以正常使用了^_^。

 2.xcode中使用Objective-C编写代码时,xcode不能够识别CGFloat\UIFont\CGSize等类,引入“ #import <UIKit/UIKit.h>”可以解决。

 3.某一个自定义的类,声明了一个 @property (strong ,nonatomic ) NSString *description;的属性,并调用了该类的set方法(class.description)时,报如下错误
错误:F ileName.h:22:43: Auto property synthesis will not synthesize property 'description' because it is 'readwrite' but it will be synthesized 'readonly' via another property

解决方法:给该属性(description)换个名字就可以了。是由于在Objective-C中每个类系统自带了description属性,表示对该类的描述,是只读的。


4.xcode6无法呼出虚拟键盘的问题

是因为xcode6中的模拟器键盘设置跟之前的版本不一样了。之前版本是模拟器的键盘和电脑的键盘都可以使用,但是xcode6的模拟器键盘只能使用其中一种,快捷切换方式:

Shift + Command + K,或者点击模拟器菜单选项 Hardware --> Keyboard,去掉 Connect Hardware Keyboard勾选。


5.xcode6推送解决方法

以前的项目在iOS SDK 8.0下编译,若有推送功能,则会报以下错误:Attempting to badge the application icon but haven't received permission from the user to badge the application

解决方案:在AppDelegate中做如下修改

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

     [selfregisterForRemoteNotification];

     return YES;

}

- (void)registerForRemoteNotification {

    if (systemVerion >=8.0) {

        UIUserNotificationType types =UIUserNotificationTypeSound | UIUserNotificationTypeBadge |UIUserNotificationTypeAlert;

        UIUserNotificationSettings *notificationSettings = [UIUserNotificationSettingssettingsForTypes:types categories:nil];

        [[UIApplicationsharedApplication] registerUserNotificationSettings:notificationSettings];

    } else {

        [[UIApplicationsharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];

    }

}


#ifdef __IPHONE_8_0

- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings {

    [application registerForRemoteNotifications];

}

#endif


6.xcode6下导入百度地图时,报错 ignoring file /BMKMap/BMKMap/libbaidumapapi.a, missing required architecture x86_64 in file /BMKMap/BMKMap/libbaidumapapi.a (3 slices),不支持64bit

解决方法:

targets ->build setting 下的architectures 设置为 standard architetures(armv7,armv7s),

                                          vaild architectures 设置为armv7,armv7s

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

将Build Active Architecture Only的值置为NO.

然后可能还是会出问题,这时候先在iPhone4s下run一下,然后iPhone5下run一下,然后iPhone5s就可以使用了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值