作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 iOS 编程的新手,我对单例类是什么以及为什么使用它非常感兴趣。我找到了一些信息,但它是模糊的。特别是我想把它应用到真实的例子中。我的项目使用 Facebook SDK,我想为我的 NSDictionary 创建包含好友列表的单例类。我的 .m 委托(delegate)文件:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//here is some other code
facebook = [[Facebook alloc] initWithAppId:@"my app id" andDelegate:self];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]
&& [defaults objectForKey:@"FBExpirationDateKey"]) {
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
if (![facebook isSessionValid]) {
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"user_location",
@"friends_location",
@"read_friendlists",
nil];
[facebook authorize:permissions];
[permissions release];
}
[facebook requestWithGraphPath:@"me/friends" andDelegate:(id)self];
//here is some other code
}
- (void)request:(FBRequest *)request didLoad:(id)result {
_friendsDictionary = result;
}
AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
.
最佳答案
单例是一个只在应用程序运行时实例化一次的类。它们通常采用管理器或工厂类的形式。当您想让对象始终存在于内存中时,它们会使用它们,通常我用于包含全局函数和变量的全局类,这些函数和变量在我的应用程序的许多地方都需要。
实现单例模式的最简单示例是这样的
在.h
#import <Foundation/Foundation.h>
@interface MySingleton : NSObject {
}
+(MySingleton*)sharedMySingleton;
-(void)sayHello;
@end
@implementation MySingleton
static MySingleton* _sharedMySingleton = nil;
+(MySingleton*)sharedMySingleton
{
@synchronized([MySingleton class])
{
if (!_sharedMySingleton)
[[self alloc] init];
return _sharedMySingleton;
}
return nil;
}
-(void)sayHello {
NSLog(@"Hello World!");
}
@end
[MySingleton sharedMySingleton] sayHello];
关于objective-c - 理解和编写单例类而不是使用委托(delegate)类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10409415/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!