相关疑难解决方法(0)

@synthesize vs @dynamic,有什么区别?

什么是实现之间的区别@property@dynamic@synthesize

cocoa cocoa-touch objective-c synthesize

553
推荐指数
7
解决办法
15万
查看次数

needsDisplayForKey/actionForKey是否覆盖正常工作?

我正在尝试将一些在Objective-C中工作的代码转换为Swift.我遇到的问题是needsDisplayForKey/actionForKey不会以相同的方式调用.据我所知,自定义键值未正确传递.这是我调试它时得到的结果:

默认值:

(String!) event = {
  core = {
    _baseAddress = Builtin.RawPointer = 0x00feee51 "onOrderIn"
    _countAndFlags = 1073741833
    _owner = Some {
      Some = (instance_type = Builtin.RawPointer = 0x01026348 @"onOrderIn")
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

自定义值(传入空字符串):

(String!) event = {
  core = {
    _baseAddress = Builtin.RawPointer = 0x0b418f79
    _countAndFlags = 1073741833
    _owner = Some {
      Some = (instance_type = Builtin.RawPointer = 0x0b418f70 -> 0x006e38f0 (void *)0x006e38c8: __NSCFString)
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我不确定相关代码是什么.我只想问 - 有没有其他人能够在Swift中定义自定义隐式动画?从Objective C移开时我还需要记住什么吗?

override class func needsDisplayForKey(key: String!) -> Bool{
    if …
Run Code Online (Sandbox Code Playgroud)

calayer swift

8
推荐指数
1
解决办法
2232
查看次数

Coredata的CodeGen'手册/无+创建NSManagedObject子类'与'类别/扩展'之间的功能差异是什么?

我已经阅读了使用swift 3和Xcode 8 beta对NSManagedObject进行Subclassing,并阅读了这篇精彩的教程.在某些方面仍有疑问.

相似之处是:

  1. 我可以自定义两个类,但我喜欢.
  2. 我可以添加新属性或删除或重命名属性.即因为category/extension它将在新的构建(在派生数据中)得到更新,并且在manual/none它的情况下将保持类文件完整并更新文件导航中的扩展名,即我不会最终得到重复文件.这全部由Xcode处理,因为它们标有预处理器@NSManaged
  3. 不允许将类似内容@NSManaged public var name: String?直接转储到现有NSManagedObject子类中.我试过 entity.name = "John"但是我得到了以下错误: reason: '-[SomeEntity setName:]: unrecognized selector sent to instance 0x60400009b120'.我认为这是合理的.我认为不使用核心数据模型编辑器就不会创建setter/getter访问器方法.

不同之处是:

  1. 对于Category/Extension你只需要自己创建类,并添加您需要任何额外的功能/性能.
  2. 因为Category/Extension属性是在派生数据中创建的,这就足够了.因为你永远不需要看到那个文件.它的存在足以使事情发挥作用.

    
特别是在更改 NSManaged属性的上下文中:

  3. 更改属性类型,例如NSDateDate只允许为Manual/None.这里的例子

  4. 更改类型的可选性,如String?String只允许为Manual/None.这里的例子
  5. 仅允许更改属性访问级别,例如从更改public到.这里的例子privateManual/None

  6. 如果我选择了Manual/Nonecodegen但是没有选择'create …

xcode core-data nsmanagedobject swift

6
推荐指数
1
解决办法
355
查看次数