我如何在Swift中做弱链接?

在Objective-C中,如果我想要使用一个只存在于新版iOS中的特定类,我会这样做: if( [UIBlurEffect class] ) { // do something with UIBlurEffect } else { // gracefully fallback to old behavior } 不过,相当于Swift: if UIBlurEffect.self != nil { let blur: UIBlurEffect = UIBlurEffect(…) // … else { // … } // also occurs with NSClassFromString("UIBlurEffect") 不具有相同的function。 如果在NSNewFeature可用的环境中运行,一切都很好。 但是如果这个类没有被定义,那么在启动应用程序时就会出现链接错误: dyld: Symbol not found: _OBJC_CLASS_$_UIBlurEffect 那么如何在Swift中做弱链接呢? 编辑添加UIBlurEffect作为具体的例子。

Xcode 4 – 铛错误

我正在从Xcode 3.5迁移到Xcode 4,同时我正在尝试为AdHoc分发存档我的应​​用程序。 我收到这个错误 预编译MyApp_Prefix.pch ProcessPCH /Users/return/Library/Developer/Xcode/DerivedData/MyApp-cwtxjgdpsvtoyxcfpytllmzaxceb/Build/PrecompiledHeaders/MyApp_Prefix-crxrbmeralwexyefvuwvzexquuin/MyApp_Prefix.pch.pth MyApp_Prefix.pch normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler cd /Users/return/Projects/iphone-MyApp setenv LANG en_US.US-ASCII setenv PATH "/Xcode4.2/Platforms/iPhoneOS.platform/Developer/usr/bin:/Xcode4.2/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Xcode4.2/Platforms/iPhoneOS.platform/Developer/usr/bin/clang -x objective-c-header -arch armv7 -fmessage-length=0 -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits -std=c99 -Wno-trigraphs -fpascal-strings -O0 -Wreturn-type -Wparentheses -Wswitch -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-shorten-64-to-32 -DFAVOURITES_ENABLED=0 -isysroot /Xcode4.2/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -gdwarf-2 -fvisibility=hidden -Wno-sign-conversion -mthumb "-DIBOutlet=__attribute__((iboutlet))" "-DIBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName)))" "-DIBAction=void)__attribute__((ibaction)" -miphoneos-version-min=3.0 -iquote "/Users/return/Library/Developer/Xcode/DerivedData/MyApp-cwtxjgdpsvtoyxcfpytllmzaxceb/ArchiveIntermediates/MyApp – Distribution/IntermediateBuildFilesPath/MyApp.build/Distribution-iphoneos/MyApp.build/MyApp-generated-files.hmap" […]

替代DTSendSignalFlag来识别仪器中的关键事件?

曾经有一个很好的工具, DTSendSignalFlag , DTPerformanceSession框架的一部分,通过它你可以以编程的方式将标志插入到仪器中(参见Xcode仪器跟踪比较 )。 此function在iOS 7中停止工作。 有没有人成功让DTSendSignalFlag在iOS 7中工作? 信号标志(是?)是一种有用的方式,通过代码以编程方式在仪器中发布标志(在诊断仪器中的复杂应用程序时非常有用),但是在iOS 7仿真器上运行时,我没有看到在仪器中以编程方式创build的标志但是当我有iOS 6模拟器的Xcode 5版本的时候,它就可以工作)。

“apprequests”对话框报告成功,收件人收到任何东西

使用Facebook iOS SDK我可以显示apprequests对话框并发送。 委托方法-dialogDidComplete:被调用,但收件人不会收到任何通知或请求。 如果他们有应用程序授权,Facebook.app(对于iOS)将显示应用程序书签旁边的一些待处理的请求,但通知gem没有得到更新,通知无处可查,Facebook.app不显示任何推送通知。 我已经跟着Facebook自己的教程 ,甚至尝试了自己的示例项目Hackbook,但每次都得到相同的结果。 我是否在应用程序设置中丢失了某些东西,或者这只是不工作,如(穷)文档中所述? 我可以看到path应用程序实现了这一点,它与我的帐户,我的设备上运行得很好,所以我想我真的没有什么东西。 增加一个希望解决scheme的赏金。

在Swift子类中添加便捷初始化器

作为一个学习练习,我试图实现一个SKShapeNode的子类,它提供了一个新的方便初始值设定项,它使用一个数字并构造一个数字宽度和高度的正方形的ShapeNode。 根据Swift书 : 规则1 如果你的子类没有定义任何指定的初始值设定项,它将自动inheritance它的所有超类指定的初始值设定项。 规则2 如果你的子类提供了它所有超类指定的初始化方法的实现,或者按照规则1inheritance它们,或者提供一个自定义实现作为其定义的一部分,那么它将自动inheritance所有的超类方便初始化方法。 但是,下面的类不起作用: class MyShapeNode : SKShapeNode { convenience init(squareOfSize value: CGFloat) { self.init(rectOfSize: CGSizeMake(value, value)) } } 相反,我得到: Playground execution failed: error: <REPL>:34:9: error: use of 'self' in delegating initializer before self.init is called self.init(rectOfSize: CGSizeMake(value, value)) ^ <REPL>:34:14: error: use of 'self' in delegating initializer before self.init is […]

如何在iOS中保存数据

我在做一个游戏,当我closures应用程序(closures多任务pipe理器),我的所有数据都没有了! 所以,我的问题很简单: 如何保存数据?

UIButtonresize以适应titleLabel

我有一个UIButton,我添加到故事板中的视图控制器视图。 我添加了居中约束来定位它,并引导空间约束来限制它的宽度。 在代码中我添加: self.button.titleLabel.numberOfLines = 0; self.button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping; [self.button setTitle:@"A real real real real real real real real long long name." forState:UIControlStateNormal]; self.button.backgroundColor = [UIColor redColor]; self.button.titleLabel.backgroundColor = [UIColor blueColor]; 结果如下所示: 我想要button来调整其内容。 我怎样才能做到这一点? 我试过了 [self.button sizeToFit]; 我已经尝试将内容拥抱和压缩阻力自动布局约束优先级设置为需要。 我也试着明确地设置contentEdgeInsets和titleEdgeInsets到UIEdgeInsetsZero并调用invalidateIntrinsicContentsize。 我也注意到,如果我在标题string中放置换行符,button似乎resize以适应其内容。 我在iPhone 6模拟器上运行Xcode 6和iOS 8。

CocoaPods和Swift 3.0

我只想在我的一个项目中尝试Swift 3.0。 Xcode打开迁移窗口来更新我的项目使用Swift 3.0。 问题是,我只想更新我的项目,并保持Pods项目不变,因为在我再次运行pod install后,任何更改都将被丢弃。 任何人都已经有一个解决scheme呢?

防止在MKMapView中滚动,同样在缩放时

一旦用户开始捏在MKMapView中 scrollEnabled似乎是易碎的。 您仍然无法用一根手指滚动,但如果在放大和缩小时用两个手指滚动,则可以移动地图。 我努力了 : MKMapKit以禁用其内的滚动视图。 实现 – mapView:regionWillChangeAnimated:执行中心。 禁用scrollEnabled 。 但没有运气。 谁能告诉我一个肯定的方法,只有放大MKMapView ,所以中心点始终停留在中间?

在iOS 10中请求相机和库的权限 – Info.plist

我已经在一个应用程序中实现了一个WKWebView。 在显示的网页中有一个文件input,它应该从照片中导入图像。 每当我按下该input,并select“拍照”或“照片库”的应用程序突然崩溃,我相信是因为该应用程序是缺less照片或从图书馆导入的权限。 当用户select上述方法之一(拍照或图片库)时,如何推送许可请求? 我用WKWebView使用Swift 3.0。