小编Gor*_*son的帖子

将自定义方法添加到子类NSManagedObject

我有一个核心数据模型,我有一个实体A,这是一个抽象.实体B,C和D继承自实体A.实体A中定义了几个由B,C和D使用的属性.

我想在我的模型代码中利用这种继承.除了属性之外,我想知道我是否可以向实体A添加方法,这些方法在它的子实体中实现.

例如:

  1. 我为实体A的接口添加了一个方法,它返回一个值并接受一个参数
  2. 我将此方法的实现添加到A,B,C,D
  3. 然后,我调用executeFetchRequest:检索B的所有实例
  4. 我在检索到的对象上调用该方法,该方法应该调用B实现中包含的方法的实现

我试过这个,但在调用方法时,我收到:

[NSManagedObject methodName:]:发送到实例的无法识别的选择器

我认为这是因为返回的executeFetchRequest:对象是某种代理对象.

有没有办法利用子类NSManagedObjects来利用继承?

我真的希望能够做到这一点,否则我的模型代码将负责确定它正在处理什么类型的NSManagedObject并根据类型执行特殊逻辑,这是不可取的.

任何帮助表示赞赏,提前谢谢.

inheritance cocoa core-data subclass

14
推荐指数
2
解决办法
8459
查看次数

使用true和false作为条件运算中的表达式

我正在维护一些代码,并且发现了以下模式:

var isMale = (row["Gender"].ToString() == "M") ? true : false;
Run Code Online (Sandbox Code Playgroud)

而不是这个:

var isMale = (row["Gender"].ToString() == "M");
Run Code Online (Sandbox Code Playgroud)

是否有任何理由为什么会有人这样做?有人认为前者更具可读性或更清晰吗?是否有某种旧的C"陷阱",这是一个保留吗?

c# coding-style readability conditional-operator

14
推荐指数
3
解决办法
7374
查看次数

Scala对Java进行并发编程有什么优势?

scala如何使编写多线程程序比在java中更容易?scala能做些什么(java不能)来利用多个处理器?

java multithreading language-features programming-languages scala

14
推荐指数
3
解决办法
2143
查看次数

我学会了jQuery,我应该回去学习"正确的javascript"吗?

我主要是服务器端开发人员,专业地使用PHP.对于javascript我总是使用一个框架(jQuery/mootools),这对我来说是一个专业的劣势吗?我应该花时间学习直接的javascript,还是大多数开发人员转移到框架?

谢谢.

javascript jquery mootools frameworks

13
推荐指数
5
解决办法
1381
查看次数

LINQ orderby vs IComparer

我想知道什么是更好用.

用于排序的IComparer类和Compare方法或列表上的LINQ orderby.两者都工作正常但哪一个更适合大型列表.

c# linq icomparer

13
推荐指数
1
解决办法
2614
查看次数

需要重构Arrow Anti-Pattern的想法

我继承了一个怪物.

它伪装成.NET 1.1应用程序处理符合医疗保健索赔支付(ANSI 835)标准的文本文件,但它是一个怪物.正在处理的信息涉及医疗保健索赔,EOB和报销.这些文件包含在前几个位置具有标识符的记录,以及根据该类型记录的规范格式化的数据字段.一些记录ID是控制段ID,它分隔与特定类型的事务相关的记录组.

为了处理文件,我的小怪物读取第一条记录,确定即将发生的交易类型,然后根据当前正在处理的交易类型开始处理其他记录.为此,它使用嵌套的if.由于存在多种记录类型,因此需要做出许多决定.每个决策都涉及一些处理和2-3个其他需要根据以前的决策做出的决定.这意味着嵌套if有很多巢.这就是我的问题所在.

这个嵌套if是715行长.恩,那就对了.七百五十条青少年线.我不是代码分析专家,因此我下载了几个免费软件分析工具,并得出了McCabe Cyclomatic Complexity评级为49.他们告诉我这是一个非常高的数字.在亚特兰大地区的花粉数量很高,其中100是高标准,新闻称"今天的花粉数量是1,523".这是我见过的箭头反模式最好的例子之一.在最高处,压痕深度为15个标签.

我的问题是,你建议采用什么方法来重构或重组这样的东西?

我花了一些时间寻找想法,但没有什么能给我一个良好的立足点.例如,用保护条件代替等级是一种方法.我只有其中一个.一窝下来,十四去.

也许有一种设计模式可能会有所帮助.指挥链会成为接近这个的方法吗?请记住,它必须保留在.NET 1.1中.

感谢您提出的所有想法.

refactoring if-statement nested anti-patterns

12
推荐指数
2
解决办法
1897
查看次数

在课堂上拥有相当数量的公共财产是否合理?

或者更具体地说,不依赖于制定者和吸气者是否"好"?

我正在处理一个检查房间可用性的课程,并设置有十几个公共房产.事情如:

  • unitNumber
  • roomTypes(数组)
  • codeCorporate
  • 代码组
  • numberKids
  • numberAdults
  • numberRooms
  • 货币
  • minRate
  • MAXRATE
  • SoapServer的
  • 单位(数组)
  • hotelId

在实例化对象之后,$this->在各种方法中设置这些属性.但是,处理对象的代码通常直接设置公共属性,而不是使用getter/setter方法:

$object->something = 3;

foreach ($object->things as $thing ) { }
Run Code Online (Sandbox Code Playgroud)

如果我有时间重构这个课程..

  • 我应该将所有这些属性都放在一个私有属性的数据数组中,以及定义__set__get方法吗?
  • 我应该为每个属性制作一个getter方法吗?

php refactoring class-design class

12
推荐指数
1
解决办法
424
查看次数

javascript:忽略字符串的区分大小写

在JavaScript中,我正在尝试使用用户的输入来搜索我的数据库.例如,用户输入是"怪物",我的数据库的数据是"怪物".无论它的外壳如何,我怎么能匹配它?

javascript case-insensitive

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

如果我单独工作并且已经定期备份,为什么要使用版本控制?

我正在做一个项目:

  • 只是我,没有协作/源代码共享
  • 我已经定期支持我的代码了,我可以使用Dropbox来恢复错误

我为项目设置git存储库(或其他东西)有什么好处?

version-control

12
推荐指数
2
解决办法
2973
查看次数

使用core.logic查询族树时消除重复结果

我正在用core.logic建模一个家谱.我想run*查询并让他们返回所有结果而不重复.更换所有defndef tabled给我我所期望的结果(至少目前),我知道conduonceo能减少结果的数量,但我不知道如果任这些都是消除重复的最佳途径.

我特别担心我目前的做法,因为宣布关系和功能似乎是重复的工作.我知道我的一些关系是"相互递归"(mothero并互相womano引用),但我这样做是因为将来我可能会添加一个新的(defrel mother*),这应该可以让它推断出母亲既是父母又是女人.

(defrel man* person)
(defrel woman* person)
(defrel parent* child father)

(fact man* :Father)
(fact woman* :Mother)
(fact man* :Son)
(fact woman* :Daughter)
(fact parent* :Son :Father)
(fact parent* :Son :Mother)
(fact parent* :Daughter :Father)
(fact parent* :Daughter :Mother)

(defn mano [person]
(conde 
    [(man* person)]
    [(fresh [c]
        (fathero c person))]))

(defn womano [person]
(conde
    [(woman* person)]
    [(fresh [c]
        (mothero …
Run Code Online (Sandbox Code Playgroud)

clojure clojure-core.logic

11
推荐指数
1
解决办法
1153
查看次数