Tag: swift

无法将类实例分配给其协议types?

请参阅下面的例子。 编译器在最后一行报告错误(由COMPILE ERROR标记),我将SimpleTrain一个实例分配给一个协议types(按我的最佳判断)符合。 我怎样才能编译? 我究竟做错了什么? 或者是这个编译器问题? protocol Train { typealias CarriageType func addCarriage(carriage: CarriageType) func shortTrain<ShortType: Train where ShortType.CarriageType == CarriageType>() -> ShortType } class SimpleTrain<T> : Train { typealias CarriageType = T private var carriages: [T] = [T]() func addCarriage(carriage: T) { carriages.append(carriage) } func shortTrain<ShortType: Train where ShortType.CarriageType == CarriageType>() -> ShortType { […]

Swift标签栏视图prepareforsegue

在VC1(集合视图)这是我的prepareforsegue代码: override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { let segue = segue.destinationViewController as TabBarViewController var selectedIndex = self.collectionView.indexPathForCell(sender as UICollectionViewCell) segue.selectedIndexPassing = selectedIndex?.row } 当我到达VC2(这是TabBarViewController),我println()selectedIndexPassing看看返回。 它会正确返回。 然后,在VC2中,我把这个prepareforsegue叫做实际的视图控制器,或者是标签栏中的第一个button: override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { var segue = segue.destinationViewController as PlayerFromRosterViewController segue.selectedIndexPassingForDisplay = 1 } 但是,当我println()在VC3(PlayerFromRosterViewController)selectedIndexPassingForDisplay我得到零。 为什么不是从标签栏导航控制器传递给VC3的variables,也就是第一个标签栏button视图。

iOS 9和WatchOS 2上的NSUserDefaults(suiteName :) – 不工作?

我以前做过,但似乎没有任何工作。 这是我的代码: 保存在iOS应用程序中 let groupDefaults = NSUserDefaults(suiteName: "group.company.appSharedDefaults") groupDefaults?.setObject(theArray, forKey: "theKey") groupDefaults?.synchronize() 阅读(适用于iOS,但不适用于WatchOS 2) let groupDefaults = NSUserDefaults(suiteName: "group.company.appSharedDefaults") if groupDefaults!.objectForKey("theKey") != nil { textEmojiArray = NSMutableArray(array: groupDefaults!.objectForKey("theKey") as! NSArray) } else { //error } 这两个.entitlements文件都包含group.company.appSharedDefaults 应用程序组function已打开,并在两个目标上都检查了适当的组。 现在,当我在手表上运行读取代码时,objectForKey返回nil,但它在iOS上可用(设备和模拟器结果相同)。 我错过了什么!

带有avplayerviewcontroller播放控件的AVPlayer

我在视图控制器中放置了avplayer来定制视图控制器的其他一些元素,但是我仍然想要AVPlayerViewController中使用的播放和清理控件。 有没有办法启用Avplayer的这些控制,当我不使用AvPlayerViewcontroller?

如何检测iOS设备是否处于静音模式?

我一直在寻找几个小时,我似乎无法find解释如何检测iPhone铃声是否处于静音模式的任何API。 这就是我所说的: 无论如何,我可以找出是否使用Swift代码打开或closuresiOS设备的静音模式? 我正在寻找iOS8以上,因为iOS5已经被弃用了。 谢谢。

用Swift语言代表

我有两个控制器,我需要调用function的第一个控制器到第二个控制器:在第二个控制器我创build了协议和init委托类: protocol testProtocol { func testDelegate() // this function the first controllers } class SecondViewController: UIViewController { var delegate: testProtocol? …. } @IBAction func testDelegateClicked(sender : AnyObject) { delegate?.testDelegate() } 第一控制器 class ViewController:UIViewController,testProtocol { var secondController: SecondViewController = SecondViewController() override func viewDidLoad() { super.viewDidLoad() secondController.delegate = self } func testDelegate() { println("Hello delegate") }</pre> 但function没有被调用

Twitter /织物loginbutton只能工作一次

我正在使用Fabric Loginbutton(TWTRLogInButton, https ://dev.twitter.com/twitter-kit/ios-reference/twtrloginbutton)。 在我的Swift应用程序中,我可以validation自己,打电话和所有。 唯一的问题是,我已经实现了一个调用Twitter.logOut()的“注销”button。 按照文档( https://dev.twitter.com/twitter-kit/ios-reference/twitter )的规定,这会删除本地会话,但不会使远程会话失效。 其效果是,一旦我通过身份validation,然后注销,如果我再次点击“login”button,我再次用同一个用户login,有效地防止我切换用户。 任何帮助?

Swift不能使用函数指针吗?

我试图在Swift中使用C库,而且我无法调用任何函数指针作为其参数之一。 例如,我试图在Swift中使用的lua.h文件的一部分如下所示: LUA_API void (lua_setuservalue) (lua_State *L, int idx); typedef int (*lua_CFunction) (lua_State *L); LUA_API void (lua_callk) (lua_State *L, int nargs, int nresults, int ctx, lua_CFunction k); 我使用桥接头来访问库,从我的Swift代码,我可以毫不费力地调用lua_setuservalue 。 但是,如果我尝试调用lua_callk,我会得到“使用未parsing的标识符'lua_callk'”。 如果我从lua_callk声明中删除函数指针,我不会再得到这个错误。 任何帮助是相当赞赏。

UICollectionView多个部分和标题

我正在努力尝试在我的集合视图中做每个部分的标题的多个部分。 我不知道Obj-C,我已经find了大量的教程,但一直没能弄清楚如何将其转换成Swift。 我的所有数据都是静态的,所以我需要的是某种数组或字典,我可以用它来创build多个部分。 我已经有一个集合视图,有1个部分可以工作,所以如果你有任何洞察力或代码多个部分会有所帮助。 我知道如何设置多个部分使用 func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int { return sectionData.count } 我认为我需要帮助的主要事情是实现这个function func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { } 并设置数据! UICollectionView和UITableView几乎完全一样,所以如果你知道如何在Swift中的UITableView中做多个部分,你的帮助也是赞赏

在swift iOS应用程序中使用FBSDK问题

我使用FBSDK在swift中编写了一个iOS 8应用程序,以允许用户login到我的应用程序。 到目前为止,我已经成功地使用FBSDK v3.25在Swift中使用Bridging-Header.h文件实现loginfunction,并根据FB开发人员网站上的说明更新info.plist。 现在我想创build一个应用程序(或更新当前的应用程序)到FBSDK v4.01,但是当我遵循将其集成到我的应用程序的同一个过程中,我得到以下错误: -> FBSDKAppLinkResolver.h /Users/danieloram/Desktop/IOS/SWIFT/FBLoginUsingSDK4/FacebookSDK/FBSDKCoreKit.framework/Headers/FBSDKAppLinkResolver.h:21:9: Include of non-modular header inside framework module 'FBSDKCoreKit.FBSDKAppLinkResolver' /Users/danieloram/Desktop/IOS/SWIFT/FBLoginUsingSDK4/FacebookSDK/FBSDKCoreKit.framework/Headers/FBSDKAppLinkResolver.h:21:9: Include of non-modular header inside framework module 'FBSDKCoreKit.FBSDKAppLinkResolver' -> Bridging-Header.h /Users/danieloram/Desktop/IOS/SWIFT/FBLoginUsingSDK4/FBLoginUsingSDK4/Bridging-Header.h:12:9: Could not build module 'FBSDKCoreKit' /Users/danieloram/Desktop/IOS/SWIFT/FBLoginUsingSDK4/FBLoginUsingSDK4/Bridging-Header.h:13:9: Could not build module 'FBSDKLoginKit' /Users/danieloram/Desktop/IOS/SWIFT/FBLoginUsingSDK4/FBLoginUsingSDK4/Bridging-Header.h:12:9: Could not build module 'FBSDKCoreKit' ->FBSDKLoginButton.h /Users/danieloram/Desktop/IOS/SWIFT/FBLoginUsingSDK4/FacebookSDK/FBSDKLoginKit.framework/Headers/FBSDKLoginButton.h:21:9: Could not build module 'FBSDKCoreKit' Failed to […]