标签: cocoa-design-patterns

Objective-C __block关键字和线程安全

我想知道如何__block在方法的上下文中访问限定的var线程安全.

例:

__block NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];

for (int i=0; i<20; i++) {
    NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
        [dictionary setObject:@"test" forKey:@"test"];
    }];
    [someConcurrentQueue addOperation:operation];
}
Run Code Online (Sandbox Code Playgroud)

这里将操作添加到并发队列中,并且dictionary可能同时从不同的线程访问var.

这样安全吗?如果没有,我如何访问dictionary安全?

cocoa cocoa-touch objective-c cocoa-design-patterns objective-c-blocks

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

Objective-C中的抽象类

我需要你的帮助.以下问题在Objective-C中:

// Robot.h
@protocol RobotProtocol <NSObject>
    -(void)doWork;
@end

@interface Robot : NSObject 


// Rob1 sublass of class Robot
// rob1.h
@interface Rob1 : Robot <RobotProtocol>

// rob1.m
@implementation
-(void)doWork
{
    // print 'robot 1'
}


// Rob2 sublass of class Robot
// rob2.h
@interface Rob2 : Robot <RobotProtocol>

// rob2.m
@implementation
-(void)doWork
{
    // print 'robot 2'
}



// Task.h
@interface Task : NSObject
{
    Robot *rob;
}


// Task.m
@implementation
- (id)init
{
    if ([super init]) {
        rob = …
Run Code Online (Sandbox Code Playgroud)

abstract-class protocols objective-c cocoa-design-patterns

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

如何判断对象是否已经分配,​​因此不会多次分配?

请你好..我是这个东西的菜鸟.我想通过一个我多次调用的方法来分配和使用一个对象,而不是将它作为一个全局变量并在我的initWithFrame方法中分配它我想在一个方法中分配它,并使它成为一个局部变量然后我分配然后使用.

iphone objective-c cocoa-design-patterns

2
推荐指数
1
解决办法
602
查看次数

基于iOS的项目实现MVC vs MVVM与VIPER的真实场景

任何人都可以解释为基于iOS的项目实现MVC vs MVVM与VIPER的真实场景.我正在寻找一些解释我们应该在哪里使用MVC,MVVM和VIPER的示例.

提前致谢.

model-view-controller mvvm cocoa-design-patterns ios viper-architecture

2
推荐指数
1
解决办法
4373
查看次数

代表宣言进退两难

我很困惑 - 我无法理解代表的目的是什么?

默认情况下创建的Application Delegate是可以理解的,但在某些情况下我看到过类似的内容:

@interface MyClass : UIViewController <UIScrollViewDelegate> {
    UIScrollView *scrollView;
    UIPageControl *pageControl;
    NSMutableArray *viewControllers;
    BOOL pageControlUsed;
}

//...

@end
Run Code Online (Sandbox Code Playgroud)

有什么<UIScrollViewDelegate>用?

它是如何工作的以及为什么使用它?

cocoa cocoa-touch objective-c cocoa-design-patterns ios

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

如何检测iphone app状态的变化?

我发布了这个问题(连同答案),以便其他人可以从一个简洁的技术中受益,我已经发展到让模块自动检测(和响应)iOS应用程序状态更改.(格式化)博客讨论在这里我的博客

iphone automation background uiapplicationdelegate cocoa-design-patterns

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

如何将(id)发件人添加到以下 - (IBAction)?

如何将(id)发件人添加到以下代码?

- (IBAction) gobutton: (UIButton *) button5 {
Run Code Online (Sandbox Code Playgroud)

我尝试的一切都失败了,任何帮助都会受到赞赏.谢谢.

编辑:我需要在(IBAction)中保留(UIButton*)按钮5参考

iphone objective-c uibutton iphone-sdk-3.0 cocoa-design-patterns

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