我决定用Swift语言继续我的剩余项目.当我在storyboard viewcontroller中添加自定义类(.swift类,哪个子类到UIViewcontroller)并加载项目时,应用程序突然崩溃并出现以下错误:
致命错误:在课堂上使用未实现的初始化程序'init(coder :)'
这是一个代码:
import UIKit
class TestViewController: UIViewController {
init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
// Custom initialization
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
/*
// #pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation …
Run Code Online (Sandbox Code Playgroud) 我有一个问题,我在下面描述了它.
我正在使用UIViewControllerContextTransitioning进行自定义转换.
我有2个视图控制器,第一个视图控制器和第二个视图控制器.
现在我想在带有动画的第一个视图控制器上添加第二视图控制器.我已经实现了,现在我有第二视图控制器透明,所以我们可以看到第二视图控制器下面的第一个视图控制器.
但我无法看到第一个视图控制器,我只能看到第二视图控制器下方的黑屏.
这是代码.
-(void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext{
self.transitionContext = transitionContext;
if(self.isPresenting){
[self executePresentationAnimation:transitionContext];
}
else{
[self executeDismissalAnimation:transitionContext];
}
}
-(void)executePresentationAnimation:(id<UIViewControllerContextTransitioning>)transitionContext{
UIView* inView = [transitionContext containerView];
UIViewController* toViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
UIViewController* fromViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
CGRect offScreenFrame = inView.frame;
offScreenFrame.origin.y = inView.frame.size.height;
toViewController.view.frame = offScreenFrame;
toViewController.view.backgroundColor = [UIColor clearColor];
fromViewController.view.backgroundColor = [UIColor clearColor];
inView.backgroundColor = [UIColor clearColor];
[inView insertSubview:toViewController.view aboveSubview:fromViewController.view];
// [inView addSubview:toViewController.view];
CFTimeInterval duration = self.presentationDuration;
CFTimeInterval halfDuration = duration/2;
CATransform3D t1 = [self firstTransform];
CATransform3D t2 = [self …
Run Code Online (Sandbox Code Playgroud) 我正在寻找SET varname = value
Hive QL中的SQL等价物
我知道我可以这样做:
SET CURRENT_DATE = '2012-09-16';
SELECT * FROM foo WHERE day >= @CURRENT_DATE
Run Code Online (Sandbox Code Playgroud)
但后来我得到了这个错误:
这里不支持字符'@'
当UIButton的帧位于其父级帧之外时,UIButton(或任何其他控件)是否可以接收触摸事件?因为当我尝试这个时,我的UIButton似乎无法接收任何事件.我该如何解决这个问题?
我有一个Contact
对象数组:
var contacts:[Contact] = [Contact]()
Run Code Online (Sandbox Code Playgroud)
联系班级:
Class Contact:NSOBject {
var firstName:String!
var lastName:String!
}
Run Code Online (Sandbox Code Playgroud)
我希望按顺序对该数组进行排序,lastName
然后firstName
在某些联系人得到相同的情况下lastName
.
我可以按照其中一个标准排序,但不能同时排序.
contacts.sortInPlace({$0.lastName < $1.lastName})
Run Code Online (Sandbox Code Playgroud)
如何添加更多条件来对此数组进行排序?
我刚刚更新到Xcode 9.4.1并遇到了随机清除剪贴板的问题.
所以我选择一个文本,点击CMD+C
,然后转到我要粘贴它的位置,点击CMD+V
,但它播放系统警报声并且不粘贴任何内容.
谁也遇到过这个问题?
更新
Xcode 10.1仍然存在
我设法让JSON和plist编码和解码都工作,但只能通过直接调用特定对象上的编码/解码函数.
例如:
struct Test: Codable {
var someString: String?
}
let testItem = Test()
testItem.someString = "abc"
let result = try JSONEncoder().encode(testItem)
Run Code Online (Sandbox Code Playgroud)
这很好,没有问题.
但是,我试图获得一个只接受Codable
协议一致性类型的函数并保存该对象.
func saveObject(_ object: Encodable, at location: String) {
// Some code
let data = try JSONEncoder().encode(object)
// Some more code
}
Run Code Online (Sandbox Code Playgroud)
这会导致以下错误:
无法使用类型'(Encodable)'的参数列表调用'encode'
看看编码函数的定义,似乎它应该能够接受Encodable
,除非Value
是一些我不知道的奇怪类型.
open func encode<Value>(_ value: Value) throws -> Data where Value : Encodable
Run Code Online (Sandbox Code Playgroud) 最近的 WWDC 声明关于 iOS 14:
对于 iOS 14、iPadOS 14 和 tvOS 14,您需要通过 AppTrackingTransparency 框架获得用户的许可才能跟踪他们或访问他们设备的广告标识符。跟踪是指将从您的应用程序收集的用户或设备数据与从其他公司的应用程序、网站或离线资产收集的用户或设备数据相关联的行为,以用于有针对性的广告或广告
参考:用户隐私和数据使用
根据本指南,我们需要使用ATTrackingManager
( AppTrackingTransparency ) 框架向用户询问跟踪权限。
我在 AppStore 上有一些应用程序,它们使用Google AdMob
&FBAudienceNetwork
向用户投放广告。
如果我不按照最新的 WWDC 指南升级这些应用程序,会发生什么情况?应用程序是否继续向用户投放广告?
如果用户不授予应用程序跟踪权限,会发生什么情况?
应用更新对广告收入有影响吗?
尝试回答这个与广告投放、收入和影响有关的问题 App Tracking Transparency
我试图在后台线程中渲染一些视图,以免影响主线程.在Xcode 9之前,这从来都不是问题.
DispatchQueue.global(qos: .background).async {
let customView = UIView(frame: .zero)
DispatchQueue.main.async {
self.view.addSubview(customView)
}
}
Run Code Online (Sandbox Code Playgroud)
UIView.init(frame :)只能在主线程中使用
第二行发生此错误.
更新
Apple UIView
文档实际上在Threading Considerations部分中说明:
必须在主线程上对应用程序的用户界面进行操作.因此,您应该始终从应用程序主线程中运行的代码调用UIView类的方法.这可能不是绝对必要的唯一时间是创建视图对象本身,但所有其他操作应该在主线程上发生.