小编Evo*_*ate的帖子

故事板中UIButton的自动收缩设置

故事板中有一个UILabel设置,允许设置自动缩小配置,如下所示:

在此输入图像描述

但我无法为UIButton的文本标签找到相同的内容.我知道我可以通过编程方式设置它,但很想知道是否有办法在Storyboard中为UIButton启用此设置.

xcode ios xcode-storyboard

37
推荐指数
3
解决办法
8860
查看次数

AWS Elastic Beanstalk上的django-rq和rqscheduler部署

我有一个在AWS EB环境中运行的Django应用程序.随着最近的更新,我不得不将django-rq和rqscheduler集成到一些基于队列的后台任务中.这一切都可以在localhost上使用命令rqworkerrqscheduler.但是我找到一种方法让它在AWS EB环境中运行时遇到了麻烦.我的分析说,唯一的出路就是使用ElastiCache.任何人都可以指导我找到正确的方向或任何可以帮助我的博客文章吗?

django amazon-web-services redis amazon-elastic-beanstalk django-rq

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

dispatch_sync始终在主线程上调度块

我正在使用dispatch_sync执行一个块,并且块正确执行.但是这个块在主线程上执行.根据Apple Doc:

串行队列(也称为专用调度队列)按照将它们添加到队列的顺序一次执行一个任务.当前正在执行的任务在由调度队列管理的不同线程(可能因任务而异)上运行.

这意味着(或我所理解的)当前正在执行的进程将在一个单独的线程上运行.

下面是我用来判断发生了什么的代码.它在NSURLConnection的didReceiveData: delegate方法中被调用(我知道我不应该在didReceiveData:delegate方法中这样做 - 但这只是一个关注dispatch_sync的示例).以下是我可以假设的不同方式作为我的结论的证明:

  1. 全局并发队列上使用dispatch_sync

       dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    
            if ([NSThread isMainThread]) {
                NSLog(@"Main Thread");
            }
            else
                NSLog(@"Not on Main Thread");
    
            //Some Process
        });
    
    Run Code Online (Sandbox Code Playgroud)

输出 -

         Main Thread
         Main Thread 
         Main Thread
         // Main Thread printed till didReceiveData: gets called
Run Code Online (Sandbox Code Playgroud)
  1. 使用dispatch_queue_create在自己创建的队列上使用dispatch_sync

    // Create queue somewhere else like this
    dispatch_queue_t newQueue = dispatch_queue_create("WriteQueue", DISPATCH_QUEUE_SERIAL);
    
    
       dispatch_sync(newQueue, ^{
    
            if ([NSThread isMainThread]) {
                NSLog(@"Main Thread");
            }
            else
                NSLog(@"Not on Main Thread");
    
            //Some Process
        });
    
    Run Code Online (Sandbox Code Playgroud)

输出 - …

cocoa cocoa-touch objective-c grand-central-dispatch ios

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

将var元组传递给Enum值

使用基于元组的值将基于变量的元组直接传递给枚举会导致编译错误.例如:

我有一个枚举如下:

enum AnswerType  {
    case Objective(Int)
    case Subjective(question: Int, answer: String)
}

var stAnswer = (question: 1, answer: "Student's Answer")

let answerType = AnswerType.Subjective(stAnswer) //Compilation error here - "Missing argument for parameter answer in call"
Run Code Online (Sandbox Code Playgroud)

这给Swift 2.1带来了编译错误.但是当我改变stAnswer为常量时,让它工作正常.任何有想法的人在这里导致编译器错误?

ios swift

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

使用各种调度队列和NSOperationQueue处理执行时间和性能

我的App包中有一个XML.我正在解析这个XML文件.我NSXMLParser使用以下方法解析此XML :

  1. 在主线程上串行运行整个代码
  2. 使用调度队列(GCD):

    2.1使用dispatch_queue_create创建自己的调度队列

    2.2使用具有高优先级的全局队列dispatch_get_global_queue

    2.3使用低优先级的全局队列

    2.4使用具有后台优先级的全局队列

  3. 运用 NSOperationQueue

我检查了执行解析XML文件所花费的性能和总时间,发现了非常奇怪(或可能是正确的)结果.

以下是上述解析方法的代码:

  1. 主线程上的串行执行 - 执行时间34毫秒.

    BOOL success = [conf parseXMLFile:[[NSBundle mainBundle] pathForResource:@"Configuration" ofType:@"xml"] didFailWithError:&error];
    if (success) {
        DLog(@"Parsing Complete");
    }
    else
        DLog(@"Parse error %@",[error description]);
    
    Run Code Online (Sandbox Code Playgroud)

2.1使用dispatch_queue_create - 执行时间68毫秒.

dispatch_queue_t backgroundQueue = dispatch_queue_create("BackQueue", NULL);

dispatch_async(backgroundQueue, ^{
    NSError *error = nil;
    BOOL success = [conf parseXMLFile:[[NSBundle mainBundle] pathForResource:@"Configuration" ofType:@"xml"] didFailWithError:&error];
    if (success) {
        DLog(@"Parsing Complete");
    }
    else
        DLog(@"Parse error %@",[error description]);
});

dispatch_release(backgroundQueue); …
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c ios

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

什么是Swift中的ExistentialMetatype

这让我感到很奇怪.在Swift中尝试以下方法:

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        println(self.superclass) //Outputs "(ExistentialMetatype)"
    }
Run Code Online (Sandbox Code Playgroud)

这使控制台上的输出为ExistentialMetatype

深入研究Swift的NSObject框架,它将其声明superclass为类型的只读计算属性AnyClass

    var superclass: AnyClass! { get }
Run Code Online (Sandbox Code Playgroud)

但是没有提到这个词ExistentialMetatype.我不知道为什么,但它提醒Objective-C的运行时(可能是它中的Metatype一词).有人知道吗?

swift

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