Mos*_*she 4 cocoa objective-c naming-conventions
我很想知道是否有任何Cocoa框架包含一个可能被误认为与人类打交道的初始化程序.明显的方法,(虽然我不知道它们是否或存在于何处)是initWithAge
,或initWithName
.
是否有任何真正聪明的Cocoa初始化器可能适用于人?
编辑:
我当然不是在问new
运营商.这是你在琐事活动中可能遇到的一个问题,但我对此非常认真.它可以客观和明确地回答.是否有任何巧妙命名的Cocoa初始化器可以被理解为指人?
Dav*_*ong 14
所以,我想你问的是:
是否存在用于初始化描述人物的对象的既定惯例?
所以,我要做的第一件事是通过框架标题查找"person"的引用:
$ cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks
$ grep -r 'Person\b' . | edit
Run Code Online (Sandbox Code Playgroud)
(是的,我默认查看Mac SDK.在iOS SDK中查看将留给读者练习)
这导致381次点击,主要是重复信息.但有一些有趣的点击:
ABPerson
来自AddressBook.frameworkEKParticipant
来自EventKitPSAuthor
来自PubSub不幸的是,这些结果都没有初始化器,因为它们主要用于与现有Person对象进行交互,而不是用于创建新对象.例外是-[ABPerson(ABPerson_vCard) initWithVCardRepresentation]
.这可能没什么帮助.
所以我们需要继续挖掘.我们怎么能描述一个人?"人"?"会员"?"个人"?"顾客"?所有这些都是非常好的东西.
然后我记得有一个隐藏在OS X SDK深处的模糊框架,没有人真正谈过,称为Collaboration.framework:
Collaboration框架是一组Objective-C类,允许开发人员监视身份及其属性.(参考)
看起来很有希望!事实上,在这里看到真正有趣的课程:CBIdentity
.阿CBIdentity
"用于访问标识的属性".有很多不同的方法来创建一个身份,但我喜欢这种模式,我建议这样做:
"MBIdentity"课程将定义规范识别一个人的方法.所以,你可以有-initWithSocialSecurityNumber:
或-initWithName:
或-initWithBirthLocation:time:
等此类的目的是要建立足以识别个人属性的集合.
然后你的"MBPerson"类会有一个-initWithIdentity:
方法MBIdentity
.然后,人将具有其组成身份的特征.
我想在这里要认识到的重要一点是,有许多方法可以建立身份(因此有许多属性/初始化器MBIdentity
).但是一旦你建立了一个身份,只有一个人拥有这个身份(因此你的Person
班级只有一个initWithIdentity:
方法).
归档时间: |
|
查看次数: |
453 次 |
最近记录: |