我正在玩一些新的iOS 7功能,并使用WWDC视频"在iOS上实现引导UI"中讨论的一些图像效果.为了在会话的源代码中产生模糊效果,UIImage通过导入UIKit的类别扩展,如下所示:
@import UIKit;
Run Code Online (Sandbox Code Playgroud)
我想我在另一个会话视频中看到了一些相关内容,但我找不到它.我正在寻找有关何时使用此信息的任何背景信息.它只能用于Apple框架吗?使用此编译器指令的好处是否应该返回并更新旧代码?
我尝试Swift在我的app中集成代码.我的应用程序是写入的Objective-C,我添加了一个Swift类.我做了这里描述的所有事情.但我的问题是Xcode没有创建-Swift.h文件,只有桥接头.所以我创造了它,但它实际上是空的.我可以在Swift中使用我所有的ObjC类,但我不能这样做.我标记了我的快速课程,@objc但没有帮助.我现在能做什么?
编辑:Apple说:"当您将Swift代码导入Objective-C时,您依靠Xcode-generated头文件将这些文件暴露给Objective-C.[...]此标题的名称是您的产品模块名称,然后添加" -Swift.h"."
现在,当我想导入该文件时,它会出错:
//MainMenu.m
#import "myProjectModule-Swift.h" //Error: 'myProjectModule-Swift.h' file not found
@implementation MainMenu
Run Code Online (Sandbox Code Playgroud)
这是我的FBManager.swift文件:
@objc class FBManager: NSObject {
var descr = "FBManager class"
init() {
super.init()
}
func desc(){
println(descr)
}
func getSharedGameState() -> GameState{
return GameState.sharedGameState() //OK! GameState is written in Objective-C and no error here
}
}
Run Code Online (Sandbox Code Playgroud) 我最近一直在努力将Swift添加到现有项目中,以现实世界的方式进行尝试.
在向项目添加Swift源文件后,我没有遇到"桥接标题"的问题,即Objective-C到Swift.
但是*-Swift.h应该公开Swift类标题@objc或ObjC类的子类的头文件无处可寻:-(
在我的主应用程序代码(仍然是Objective-C)中,我没有看到任何关于如何使用Swift编写的新子类的使用的具体说明.
我是主要开发人员的应用程序拥有相当大的代码库(70.000行),因此一次性转换它是不可能的.
我在哪里可以找到有关如何修改这些信息的信息
${EXECUTABLE_NAME}${PRODUCT_NAME}这些仅显示在.plist文件中,但实际值在哪里.
如果我们可以直接修改.plist中我们想要的东西,为什么我们需要这些呢.
我是新的,这就是为什么我有问题理解这些,我也查看了苹果信息属性列表的关键参考,但没有找到这些$ {}值.
我正在尝试使用带有Swift编程语言的Objective C框架进行iOS 8开发.这是导入的具体情况,但一般问题是:
如何将Objective C框架导入swift并获得导入识别?
我正在尝试使用iOS 8和Xcode 6测试版将Parse框架集成到一个快速的应用程序中.
以下是Objective C中Parse框架集成的技术:
https://www.parse.com/apps/quickstart#social/mobile/ios/native/existing
我已经将Parse框架作为压缩存档下载,解压缩并将其导入Xcode 6而没有任何问题.在我的应用程序中,它显示为名为Parse.framework的格式正确的框架.
我目前的思考过程是修改AppDelegate.swift项目根目录下的文件.这是没有修改的当前文件(在快速项目创建时由Xcode自动生成):
https://gist.github.com/fconcklin/e8ef7d8b056105a04161
我试图通过添加行import Parse下面的行来导入解析import UIKit.但是,Xcode发出警告,表示没有找到这样的模块,并且构建失败.
我还尝试创建一个${PROJ_NAME_HERE}-Bridging-Header.h包含Parse使用的Objective C导入的文件import <Parse/Parse.h>.这条线不会引发错误,但似乎最终没有任何区别.
提前致谢.如果您需要更多信息,请告诉我.
我正在努力让facebook API适用于iOS,FB注册页面需要项目的Bundle ID.我怎样才能获得这些信息?我读了一些关于在运行时获取它的内容,但有没有办法让Xcode告诉我这些信息,或者它是否存在于某个地方.我没有使用默认的包ID,我记得在创建项目时设置它.
当我尝试在Xcode 6.3中构建CKCountdownButton作为框架时,它会抱怨
警告:找不到目标'CKCountdownButton'的伞头,将不会生成模块图
然后,当我在其他项目中导入此框架时,它失败了没有这样的模块'CKCountdownButton'
所以我正在研究Swift中的iOS项目,我想创建一个包含一些有用内容的静态库.
我的问题是当我尝试在Xcode(版本6.3)中构建我的lib时,我有一个"Build Failed",然后是: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: unknown option character 'X' in: -Xlinker
我从来没有见过这个,这不是我的第一个静态库.所以我在想我可能与我只使用Swift类这一事实有关.
你们有什么感想 ?先感谢您.
我将swift框架导入Objective-c项目,如下所示:
@import MyFramework;
Run Code Online (Sandbox Code Playgroud)
问题是只有一些类被我导入框架的类识别.
被认可的班级:
public class RecognizedClass:UIViewController, WKNavigationDelegate, WKScriptMessageHandle
{ ... }
Run Code Online (Sandbox Code Playgroud)
这个课不是:
public class VeediUtils
{ ... }
Run Code Online (Sandbox Code Playgroud)
它们都是公共的,为什么第一个在工作区被识别而另一个没有?
另外我在头文件MyFramework-Swift.h中看到一个类
@interface RecognizedClass : UIViewController <WKNavigationDelegate, WKScriptMessageHandler>
Run Code Online (Sandbox Code Playgroud)
出现而另一个不
这是为什么?
还指出,当我将swift框架导入swift项目时,同样的过程也能正常工作
在iOS项目中,我更改了目标名称.但是对于构建,在左上角(在停止按钮旁边),它仍然只显示旧目标名称...我应该更改什么,以便旧项目名称将完全从XCode中消失?