小编Luk*_*ger的帖子

致命错误:在课堂上使用未实现的初始化程序'init(coder :)'

我决定用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)

macos uiviewcontroller ios swift

155
推荐指数
3
解决办法
8万
查看次数

"从View Controller"使用UIViewControllerContextTransitioning消失

我有一个问题,我在下面描述了它.

我正在使用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)

iphone transition objective-c uiview ios

103
推荐指数
10
解决办法
3万
查看次数

如何在HIVE脚本中设置变量

我正在寻找SET varname = valueHive QL中的SQL等价物

我知道我可以这样做:

SET CURRENT_DATE = '2012-09-16';
SELECT * FROM foo WHERE day >= @CURRENT_DATE
Run Code Online (Sandbox Code Playgroud)

但后来我得到了这个错误:

这里不支持字符'@'

hive hiveql

95
推荐指数
3
解决办法
17万
查看次数

超越UIView界限的互动

当UIButton的帧位于其父级帧之外时,UIButton(或任何其他控件)是否可以接收触摸事件?因为当我尝试这个时,我的UIButton似乎无法接收任何事件.我该如何解决这个问题?

iphone cocoa objective-c uibutton uiview

85
推荐指数
7
解决办法
4万
查看次数

Swift - 使用多个条件对对象数组进行排序

我有一个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)

如何添加更多条件来对此数组进行排序?

sorting swift

73
推荐指数
5
解决办法
3万
查看次数

如何为Xcode 10启用暗模式

Apple公布了Xcode 10的新Dark模式.我已下载测试版,但现在我找不到任何打开它的选项.我目前正在使用macOS 10.13 High Sierra.

在此输入图像描述

xcode macos-high-sierra xcode10

51
推荐指数
2
解决办法
4万
查看次数

Xcode剪贴板:复制和粘贴卡住

我刚刚更新到Xcode 9.4.1并遇到了随机清除剪贴板的问题.

所以我选择一个文本,点击CMD+C,然后转到我要粘贴它的位置,点击CMD+V,但它播放系统警报声并且不粘贴任何内容.

谁也遇到过这个问题?

更新

Xcode 10.1仍然存在

xcode copy-paste xcode9.4 xcode10 xcode11

46
推荐指数
2
解决办法
3382
查看次数

使用JSONEncoder以Codable作为类型对变量进行编码

我设法让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)

serialization protocols ios swift codable

35
推荐指数
1
解决办法
9158
查看次数

App Tracking Transparency 如何影响展示广告的应用?- IDFA iOS14

最近的 WWDC 声明关于 iOS 14:

对于 iOS 14、iPadOS 14 和 tvOS 14,您需要通过 AppTrackingTransparency 框架获得用户的许可才能跟踪他们或访问他们设备的广告标识符。跟踪是指将从您的应用程序收集的用户或设备数据与从其他公司的应用程序、网站或离线资产收集的用户或设备数据相关联的行为,以用于有针对性的广告或广告

参考:用户隐私和数据使用

根据本指南,我们需要使用ATTrackingManager( AppTrackingTransparency ) 框架向用户询问跟踪权限。

我在 AppStore 上有一些应用程序,它们使用Google AdMob&FBAudienceNetwork向用户投放广告。

题:

  1. 如果我不按照最新的 WWDC 指南升级这些应用程序,会发生什么情况?应用程序是否继续向用户投放广告?

  2. 如果用户不授予应用程序跟踪权限,会发生什么情况?

  3. 应用更新对广告收入有影响吗?

尝试回答这个与广告投放、收入和影响有关的问题 App Tracking Transparency

以下是我已经提到的所有参考资料。

用户隐私和数据使用

应用跟踪透明度

谷歌广告

Google AdMob:实施

广告支持

ads ios swift idfa ios14

34
推荐指数
2
解决办法
2万
查看次数

Xcode UIView.init(frame :)只能在主线程中使用

我试图在后台线程中渲染一些视图,以免影响主线程.在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类的方法.这可能不是绝对必要的唯一时间是创建视图对象本身,但所有其他操作应该在主线程上发生.

xcode multithreading uikit ios swift

28
推荐指数
3
解决办法
3万
查看次数