2016-01-07 11:01:04 RoyUpping_ 阅读数 419
  • iOS/Swift/OC/Objective-C/Xcode/0基础/入门

    这是一门快速入门iOS开发的课程,目的是让大家快速学会,iOS开发环境搭建,和iOS一些基础知识,最后完成一个小项目。 项目信息 提供完整的Git提交历史,和每节视频一一对应,目前有41次提交,355行注释,271行代码(不包含可视化布局文件,纯Swift和Objective-C代码)。

    3335 人正在学习 去看看 任苹蜻
  1. 在项目中右键添加一个swift文件,我添加的LearnSwift.swift
  2. 添加后Xcode弹出‘是否配置oc桥接头文件’的提示,点确认,系统自动生成一个项目名-Bridging-Header.h的文件,我的是LearnSwift-Bridging-Header.h
    配置oc桥接头文件的提示
  3. LearnSwift-Bridging-Header.h实质上是一个供swift使用的头文件,在这里把所有要暴露给swift的oc头文件都添加进去,这样写swift的时候就可以直接使用那些oc的类和方法了。
    因为swift本身没有头文件,只有.swift;而oc有.h和.m文件。有了这个声明,.swift就可以直接使用oc的.h了
    我的<code>LearnSwift-Bridging-Header.h</code>文件内容
  4. 接下来就可以直接在LearnSwift.swift中写swift代码啦 ~ 随便声明一个类,打些log:
    我的<code>LearnSwift.swift</code>文件内容
    编译直接通过,这就是在swift中使用oc类和方法了,一切顺利!
  5. 在oc中使用swift,我在AppDelegate.m中使用刚才创建的swift类,那么先要引用swift头文件,即#import "LearnSwift-Swift.h",然后在这个.m文件中就可以任意使用swift创建的类和方法了:
    LearnSwift *learnSwift = [[LearnSwift alloc] init];
    [learnSwift logsth:@"code from oc"];

    编译运行直接过! 输出:
    this is a log from swift : code from oc
  6. 理解下#import "LearnSwift-Swift.h"
    其实是项目名-Swift.h,这也是Xcode自动生成的,根据你写的所有swift代码,生成一个oc的.h文件,进行类和方法的声明,这样在oc里引用这个头文件后,就相当于引用了所有swift声明,可以直接使用了。
2018-01-18 14:38:01 dylan_lwb_ 阅读数 884
  • iOS/Swift/OC/Objective-C/Xcode/0基础/入门

    这是一门快速入门iOS开发的课程,目的是让大家快速学会,iOS开发环境搭建,和iOS一些基础知识,最后完成一个小项目。 项目信息 提供完整的Git提交历史,和每节视频一一对应,目前有41次提交,355行注释,271行代码(不包含可视化布局文件,纯Swift和Objective-C代码)。

    3335 人正在学习 去看看 任苹蜻

1.新建Swift File命名为Common,创建完成会提示是否创建桥接文件,选择Create Bridging Header, 在BeiSu-Bridging-Header文件添加你想引用的OC的文件或者第三方


2.TARGETS - Build Settings 搜索Defines Module, 设置为Yes, 设置之后Xcode会自动在Objective-C Generated Interface Header Name创建 项目名-Swift.h文件, 该文件很重要, 虽然在项目目录看不见?

3.在写swift代码前, 先在Common.swift配置常用的"宏"


4.创建Network.swift配置网络请求工具类, 可以参考我之前写的一篇博客, http://blog.csdn.net/dylan_lwb_/article/details/53535460

5.开始写swift代码, 未完待续



2017-03-17 13:51:27 u010407865 阅读数 20619
  • iOS/Swift/OC/Objective-C/Xcode/0基础/入门

    这是一门快速入门iOS开发的课程,目的是让大家快速学会,iOS开发环境搭建,和iOS一些基础知识,最后完成一个小项目。 项目信息 提供完整的Git提交历史,和每节视频一一对应,目前有41次提交,355行注释,271行代码(不包含可视化布局文件,纯Swift和Objective-C代码)。

    3335 人正在学习 去看看 任苹蜻

网上有很多关于OC项目中使用Swift类的方法,但是亲自试了之后,发现不够详细,多次尝试后,终于找出详细的方法。
现把方法和遇到的问题,记录下来,方便其他同仁借鉴:

一、新建一个OC工程,工程名称自定,在这里我定义为OCAndSwiftDemo,如图:

新建项目架构图

二、在新建Swift类之前,进行相关设置,如图:

相关设置

三、在项目中,新建一个TestDemo的swift类,点击Create后,提示如图:

创建OC调用Swift类的桥接文件

选择Create Bridging Header,一定要选择这个,如果不选择,就引入不了Swift类,然后生成”项目名称-Bridging-Header.h”桥接文件

然后编辑Swift类,如果Swift类想要被OC发现,必须继承自NSObject,如图:

TestDemo类

四、调用Swift类,我们想要调用Swift类的方法里面引入头文件:”项目名称-Swift.h”,如图:

调用Swift类

注释:如果调用不了Swift类,可以先Shift+Command+R一下。

2015-01-16 11:00:12 u012524022 阅读数 4218
  • iOS/Swift/OC/Objective-C/Xcode/0基础/入门

    这是一门快速入门iOS开发的课程,目的是让大家快速学会,iOS开发环境搭建,和iOS一些基础知识,最后完成一个小项目。 项目信息 提供完整的Git提交历史,和每节视频一一对应,目前有41次提交,355行注释,271行代码(不包含可视化布局文件,纯Swift和Objective-C代码)。

    3335 人正在学习 去看看 任苹蜻

   对于已经工作的开发者,并不适合也没有条件从一个全新的swift项目开始,进行开发. 虽然网上关于swift和oc混合编程的教程比较多,但是大多是基于 swift项目的,所以对咱们 OCer的参考价值有一定折扣.

   现在swift虽然仍然存在很多缺陷,但是鉴于苹果的强势,是时候在项目中把简单的功能交给swift了,给自己,给项目,给swift一个缓冲区,都是极好的.

   说了这么多,开始上代码.


   现在的背景是: 已经有一个oc项目了,我想要加入 swfit,并且实现 oc调用 swift ,swift调用oc .

   1.新建一个swift文件

    

   2.接下来会询问你是否建立桥接文件,点击是 ,那么我后面的就是多余的了,所以选择取消,我们手动建立桥接文件

   3.手动建立桥接文件:新建头文件 



     关于命名: 有经验的人都知道,这个头文件是项目公用的,同时如果自动创建,文件名也是 :

     项目名-Bridging-Header.h 

     但是因为我现在的项目名是中文,所以我自己命名了一下.

  

   4. 配置头文件 

       在build setting里面搜索 swift ,根据实际情况进行配置:

       注意:是相对于工程文件所在的相对路径.从 Finder里面看,不要让项目中得group扰乱你的判断


   5.在头文件中引入需要的 oc头文件,这里我就用 UIKit了


    

   6.编写代码

  

      可以看到,我们可以使用UIKit的类了


   注意:关于自定义类,希望有个好的命名规范,那么在混合编程中,你将受益无穷


  7.oc调用swift

    现在因为测试我想把窗口的根控制器设置为我的swift的那个.

    因为swift没有头文件,所以不好办了...

    其实,系统默认给我们生成了头文件(需要我们的swift类是NSObject的直接或者间接子类),我们只要引入

    项目名-Swift.h

    没办法了,我的项目名是中文...

     引入:


  8.使用 swift的类

  

  9.运行

   一切正常 (好丑,不要吐槽)


   

       

 


2019-11-15 11:10:27 C_calary 阅读数 39
  • iOS/Swift/OC/Objective-C/Xcode/0基础/入门

    这是一门快速入门iOS开发的课程,目的是让大家快速学会,iOS开发环境搭建,和iOS一些基础知识,最后完成一个小项目。 项目信息 提供完整的Git提交历史,和每节视频一一对应,目前有41次提交,355行注释,271行代码(不包含可视化布局文件,纯Swift和Objective-C代码)。

    3335 人正在学习 去看看 任苹蜻

一、前言

最近公司的Flutter项目中引入了一个三方插件,android上是运行正常的,但是iOS端插件是swift版本的,导致运行失败,这里记录下解决方案。

二、问题解决

1、报错信息

`xxxxx` does not specify a Swift version and none of the targets (`Runner`) integrating it have the `SWIFT_VERSION` attribute set. Please contact the author or set the `SWIFT_VERSION` attribute in at least one of the targets that integrate this pod.

解决方法:
这个错误提示是让联系作者增加SWIFT_VERSION,一般是有的,可能是因为项目中没有增加SWIFT_VERSION版本,所以我们在项目中增加SWIFT_VERSION版本号,添加的时候在下图中User-Defined中点击圆圈+添加,版本号设置和插件相同,如果存在,更改下版本号。然后pod install,运行项目
在这里插入图片描述

2、继续报错

接着运行项目, 继续报错,说文件找不到

fatal error: 'xxxx/xxxx-Swift.h' file not found

解决方法
在Podfile文件中添加 use_frameworks!
在这里插入图片描述

pod install 运行,成功!!!

参考链接:http://www.freesion.com/article/3401520/

swift oc 混合编程

阅读数 505

OC-swift混编

阅读数 35

没有更多推荐了,返回首页