Objective -c:来自instancetype的字符串长度

时间:2014-03-17 20:16:24

标签: ios objective-c

目标c非常新。我的界面和实现如下所示:

// MyAuth.h
// @interface
+ (instancetype)sharedToken;

// MyAuth.m
//@implementation
+ (instancetype)sharedToken {
   static MyAuth *_sharedToken = nil;
   static dispatch_once_t onceToken;
   dispatch_once(&onceToken, ^{
       _sharedToken = [[NSUserDefaults standardUserDefaults] valueForKey:@"token"];
   });
   return _sharedToken;
}

现在我正试图获得sharedToken的长度,但我被困在这里。我尝试了什么

[MyAuth sharedToken].length // doesn't work

如何获得`sharedToken

的长度

1 个答案:

答案 0 :(得分:1)

您希望通过此方法可以在应用中的任何位置访问从NSUserDefaults拉出的字符串。

方法的返回类型必须是您实际返回的对象的类型:

+ (NSString *)sharedToken;

instancetype表示该方法返回运行该方法的类的实例。

用于字符串的指针也应该具有正确的类型:

static NSString *_sharedToken = nil;

现在,编译器将允许您将length发送到方法调用的结果。