最近几天,更新了xcode7,由于工程是swift和OC混编,所以工程会自动生成一个project-swift.h文件。前段时间一直用xcode6.4,一直没问题,更新到7之后,问题来了:生成的文件出错。

出错行报错如下:

/Users/lindow/Library/Developer/Xcode/DerivedData/YsCalendar-hcppxdyfluizfvalogsccedszjxo/Build/Intermediates/YsCalendar.build/Release-iphonesimulator/YsCalendar.build/DerivedSources/YsCalendar-Swift.h:190:1: Expected identifier or '(

仔细看出错行

\Note
/// It is currently not possible to use generics with a subclass of NSObject
///
/// <ul><li>This class is a wrapper around an objects that should be cached to disk.</li><li></li><li><code> However, NSKeyedArchiver needs a concrete subclass of NSObject to work correctly
///
/// </code></li></ul>
SWIFT_CLASS("_TtC10YsCalendar11CacheObject")
@interface CacheObject : NSObject <NSCoding>
@property (nonatomic,readonly) id__nonnull value;
@property (nonatomic,readonly) NSDate * __nonnull expiryDate;

很明显看到的是生成的\Note这一行出错。

开始一筹莫展,不知道为什么会出现这种情况,另外2个同事,和我一样的xcode版本,一样的代码但是编译毫无问题。

那么就开始网上找答案,可惜网上也没用人遇到过。后来遇到一大牛,才解决。

大牛的分析思路如下:

1.首先定位到出错文件,这段是在编译CacheObject.swift这个文件的时候出现的。可以从下面的SWIFT_CLASS中得知

2.打开出错文件,得到内容如下:

import Foundation/*** This class is a wrapper around an objects that should be cached to disk.** NOTE: It is currently not possible to use generics with a subclass of NSObject* However, NSKeyedArchiver needs a concrete subclass of NSObject to work correctly*/
class CacheObject : NSObject, NSCoding {
let value:AnyObject
let expiryDate:NSDate

3.定位到出错处,注释的地方

4.得到原因,NOTE为swift的关键字,swift 支持NOTE, DEBUT, TODO, MARK等这些关键字。所以可能是xcode读取注释出错造成

5.更改注释处,删掉或者用///注释皆可

6.问题完美解决

出了问题不要怕,尽管这个问题很怪,但是大牛也只花了20分钟不到就解决了。条理清晰,逻辑缜密的解决问题思路很值得学习

xcode自动生成project-swift.h出错相关推荐

  1. OC代码通过Xcode自动生成UML类图

    先来了解什么是UML? 在UML的静态机制中类图是一个重点,它不但是设计人员关心的核心,更是实现人员关注的核心.建模工具也主要根据类图来产生代码.类图在UML的9个图中占据了一个相当重要的地位.Jam ...

  2. 设置 Xcode 自动生成代码片段

    一.什么是代码片段 当在Xcode中输入dowhile并回车后,Xcode会出现下图所示的提示代码: 这就是代码片段,目的是使程序员以最快的速度输入常用的代码片段,提高编程效率.该功能是从Xcode4 ...

  3. Visual Studio2017自动生成的#include“stdafx.h”详解及解决方案

    问题描述: 在高版本的Visual Studio的默认设置中,会出现这么一个现象,在新建项目之后,项目会自动生成#include"stdafx.h"的头文件,而且删掉之后,即使是自 ...

  4. linux设备文件生成,Linux设备文件自动生成(示例代码)

    第一种是使用mknod手工创建:# mknod 第二种是自动创建设备节点:利用udev(mdev)来实现设备文件的自动创建,首先应保证支持udev(mdev),由busybox配置. 具体udev相关 ...

  5. CAN报文的打包与解包及代码自动生成

    本文目录 1.背景 2.所需要的软件与硬件 3.Motorola编码和Intel编码 1.自动打包和解包 2.手动解包 4.实例 1.打包模型建立 2.数据对象管理 3.对比测试 4.等效性测试 5. ...

  6. 用 Visual Studio 自动生成C/C++注释(Doxygen、XML)

    文章目录 引言 方案一:用 Doxygen Comments 生成 Doxygen 风格注释 1. 在VS中安装 Doxygen Comments 扩展 2. 重启VS,启用扩展 3. 使用 Doxy ...

  7. 长篇文章根据文章H标签自动生成导航目录方法

    在一些旅游网站,比如说途牛.携程这些,当你看某条线路的详情页时,右边会有相应的第一天.第二天等的目录. 这么大的网站,不可能后台添加行程的时候,每一天都要自动写一个目录吧! 所以应该是自动生成的. 那 ...

  8. project 模板_施工进度计划表不会做?18个横道图自动生成模板,直接在线编辑...

    施工进度计划表不会做?18个横道图自动生成模板,直接在线编辑 对于工程建设来说,施工进度横道图在工程进度计划制定.项目管理等方面被广泛的应用,也是管理人员必须要掌握的技能,在编制的时候还是很繁琐的,需 ...

  9. project 模板_不会绘制横道图?18个施工进度计划横道图模板,可一键自动生成,方便快捷易操作,直观形象,相当好用...

    横道图是通过条状图来显示项目,进度,和其他时间相关的系统进展的内在关系随着时间进展的情况,相当形象直观,在建筑广泛应用. 这18个施工进度计划横道图模板包括7个Excel模板和11个project模板 ...

最新文章

  1. 【C++】动态内存管理/move/以及移动构造与移动赋值运算符
  2. vm 软件现在地址加速版
  3. 关于EGE图形库在CodeBlocks下的配置
  4. Python框架篇之Django(Django项目搭建全过程、Web框架与Django)
  5. 软件测试技巧|软测经典面试题(二)
  6. bootstrap 页面垂直居中_前端布局之——水平垂直居中
  7. BuzzFeed如何从Perl单体应用迁移到Go和Python微服务
  8. 一步一步安装服务器监视软件MRTG
  9. D-Link service.cgi远程命令执行漏洞复现
  10. 图像算术编码 matlab,实验二:算术编码及MATLAB实现.doc
  11. JavaWeb宿舍管理系统环境搭建运行教程
  12. 北漂真的是你的归宿吗?
  13. mysql的主句与从句_什么是主句,什么是从句
  14. 高德地图坐标转平面坐标
  15. Android检测网络状态监听网络变化
  16. 定时任务@Scheduled(cron = “* * * * * *“) cron表达式
  17. 编码规则-驼峰式拼写法
  18. SFTP文件上传、下载
  19. 毕业设计(二)-- 指针式仪表目标检测
  20. 超通俗易懂的Servlet入门教程

热门文章

  1. 非功能测试之兼容性测试、文档测试和安装测试
  2. 做人要厚道,转帖请贴出原帖url
  3. 1597_AURIX_TC275_GPIO简介
  4. Android 6.0 新特性和功能,系统和 API 行为更新
  5. C语言读写ini、json、csv文件
  6. 一起来看新浪的NBA图文直播摆乌龙
  7. 移动端图文直播技术方案的分析
  8. matplotlib 怎么画核密度
  9. 【机器学习基石】机器学习的种类(三)
  10. oracle times ten 学习笔记