Objective-c方法的命名约定

时间:2013-10-17 16:31:55

标签: objective-c

我有一个具有以下属性的类:

  • 名称
  • 电子邮件
  • 用户名

我想将这些属性转换为字典。如何正确命名符合Apple惯例的方法?

我在考虑:

- (NSDictionary *) convertToDictionary {} 

2 个答案:

答案 0 :(得分:4)

仅仅-dictionaryRepresentation如何传达这样一种观念,即您可以以字典形式获取存储在对象中的数据?所以你要说:

NSDictionary *personDict = [person dictionaryRepresentation];

另一个合理的选择是-properties,将返回类型留在名称之外:

NSDictionary *personDict = [person properties];

答案 1 :(得分:1)

请考虑从NSString转到NSData

NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding];

同样你可以这样做:

- (NSDictionary *)dictionary;

因为你没有参数。或者考虑从NSDataNSString

[[[NSString alloc] initWithData:data encoding:encoding] autorelease]

类方法(如果有的话)看起来像:

[NSString stringWithData:data encoding:encoding]

因此您可以将其设为NSDictionary上的类别。假设您的班级名为Account

+ (NSDictionary *)dictionaryWithAccount:(Account *)account;

取决于您认为更好看的内容:

Account *account = ...;

[account dictionary];
[NSDictionary dictionaryWithAccount:account];