小编nil*_*nil的帖子

如果我嵌套了dispatch_async调用,会发生什么?

这可能是一个愚蠢的问题,但我需要为自己提出并清楚这一点.

要将块提交到队列以供执行,请使用函数dispatch_syncdispatch_async.它们都将队列和块作为参数.dispatch_async立即返回,异步运行块,同时dispatch_sync执行块直到提供的块返回.以下是一些情况:

情况1

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0ul);    
dispatch_async(queue, ^{
    [self goDoSomethingLongAndInvolved];
    dispatch_async(queue, ^{
        NSLog(@"this is statement1");

    });
});
Run Code Online (Sandbox Code Playgroud)

情况2

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0ul);    
dispatch_sync(queue, ^{
    [self goDoSomethingLongAndInvolved];
    dispatch_sync(queue, ^{
        NSLog(@"this is statement1");

    });
});
Run Code Online (Sandbox Code Playgroud)

情况3

{
    [super viewDidLoad];
    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0ul);    
    dispatch_async(queue, ^{
        [self goDoSomethingLongAndInvolved];
        dispatch_sync(queue, ^{
            NSLog(@"this is statement1");

        });
    });
Run Code Online (Sandbox Code Playgroud)

情况4

{
    [super viewDidLoad];
    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0ul);    
    dispatch_sync(queue, ^{
        [self goDoSomethingLongAndInvolved];
        dispatch_async(queue, ^{
            NSLog(@"this …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c grand-central-dispatch ios objective-c-blocks

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

如何检查对象是一种阻止与否

我们如何识别任何特定对象是否有块?

例如,

NSSet *set =[NSSet setWithObjects:
             @"name1",
             @"name2",
             [^{ /* ..... some code */ } copy],
             nil];
Run Code Online (Sandbox Code Playgroud)

我们怎样才能找出set中的哪个对象是一种块?

cocoa cocoa-touch objective-c

16
推荐指数
3
解决办法
2765
查看次数

HTML5中的标题标记(H1内部的P)中是否有段落元素是否有效?

它是确定有在HTML5头标记中的段落元素?

换句话说:这个标记在HTML5中是否正确?使用它有什么缺点?

<h1>
    <p class="major">Major part</p>
    <p class="minor">Minor part</p>
</h1>
Run Code Online (Sandbox Code Playgroud)

如果没有,我如何正确地使用CSS设置这些元素的样式?

html css html5 w3c

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

显示大于设备屏幕的图像

我希望在不调整图像大小的情况下显示尺寸大于设备屏幕的图像.它必须以屏幕为中心.我怎样才能做到这一点?

android scroll resize image android-imageview

6
推荐指数
2
解决办法
5104
查看次数

使用glTexImage2D的奇怪结果

我一直试图找出glTexImage2D工作方式,并从一些非常清晰的代码中看到一些奇怪的结果.我的代码简单地将粗略的圆圈绘制成256*256长度的无符号数组,然后将该数据发送出去以成为纹理.然而,无论我在图像创建循环中选择何种组合,显示的纹理都会变成红色和橙色的变化:

unsigned* data = new unsigned[256*256];
for (int y = 0; y < 256; ++y)
    for (int x = 0; x < 256; ++x)
        if ((x - 100)*(x - 100) + (y - 156)*(y - 156) < 75*75)
            data[256*y + x] = ((156 << 24) | (256 << 16) | (156 << 8) | (200 << 0));
        else
            data[256*y + x] = 0;  // I'd expect this to be transparent and the above to be slightly transparent and …
Run Code Online (Sandbox Code Playgroud)

c++ opengl

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

OpenGL ES 2.0纹理显示为黑色

我正在使用OpenGL ES 2.0为嵌入式设备开发应用程序.

这是我的片段着色器:

varying vec2 v_texCoord;
uniform sampler2D s_texture;
void main() {
  gl_FragColor = texture2D(s_texture, v_texCoord);
}
Run Code Online (Sandbox Code Playgroud)

我正确设置了纹理.出于某种原因,调用glTexImage2D不会产生我正在寻找的结果.纹理完全是黑色的,而不是填充我提供的数据.

这是我创建纹理的方式:

   GLuint textureId;

   // 2x2 Image, 3 bytes per pixel (R, G, B)
   GLubyte pixels[6 * 3] =
   {  
      255,   0,   0, // Red
        0, 255,   0, // Green
        0,   0, 255, // Blue
      255, 255,   0,  // Yellow
        0, 255, 255,
        255, 0, 255
   };

   // Use tightly packed data
   glPixelStorei ( GL_UNPACK_ALIGNMENT, 1 );

   // Generate a …
Run Code Online (Sandbox Code Playgroud)

c graphics opengl-es opengl-es-2.0

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

找到3个CGPoints的角度

在我的应用程序中,用户点击3次,并且点击的3个点将创建一个角度.它完美地绘制了角度.我想在第二次敲击时计算角度,但我认为我做错了(可能是数学错误).我还没有在我的微积分课程中介绍过这个,所以我将在维基百科上找到一个公式.

http://en.wikipedia.org/wiki/Law_of_cosines

这是我正在尝试的:

注意:CGPoints在用户点击时创建第一,第二和第三.

        CGFloat xDistA = (second.x - third.x);
        CGFloat yDistA = (second.y - third.y);
        CGFloat a = sqrt((xDistA * xDistA) + (yDistA * yDistA));

        CGFloat xDistB = (first.x - third.x);
        CGFloat yDistB = (first.y - third.y);
        CGFloat b = sqrt((xDistB * xDistB) + (yDistB * yDistB));

        CGFloat xDistC = (second.x - first.x);
        CGFloat yDistC = (second.y - first.y);
        CGFloat c = sqrt((xDistC * xDistC) + (yDistC * yDistC));

        CGFloat angle = acos(((a*a)+(b*b)-(c*c))/((2*(a)*(b))));

        NSLog(@"FULL ANGLE IS: %f, …
Run Code Online (Sandbox Code Playgroud)

math cocoa-touch objective-c drawrect ios

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

从另一个调用一个Activity

如何从一个(当前)活动中调用另一个活动?我想调用一个活动,其中包含当前活动的对话框消息框.

android

0
推荐指数
2
解决办法
7323
查看次数

必须在dealloc中释放非指针实例变量吗?

我是否必须releasedealloc类的方法中调用非指针变量?

例如

@interface myClass : NSObject {

    BOOL isDirty; // do i have to release this?
    NSInteger hoursSinceStart; // and this?

    NSDate *myDate; // i will release the pointer in dealloc
}

@property (assign, nonatomic) NSInteger hoursSinceStart; // property to release?

@property (assign, nonatomic) BOOL isDirty; // property to release?
@end
Run Code Online (Sandbox Code Playgroud)

iphone sdk class objective-c dealloc

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