小编wh1*_*t1k的帖子

测试应用程序是否从UILocalNotification变为活动状态

有没有办法知道应用程序是否通过本地通知变为活动状态?

我知道有一种方法来测试,如果应用程序被启动从本地通知提醒; 但如果只是坐在那里的背景,并收到通知?

当应用程序变为活动状态时,我需要运行不同的代码:

  1. 来自本地通知.
  2. 刚刚变得活跃:)

有办法吗?

iphone background objective-c uilocalnotification

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

代表的非保留数组

在Cocoa Touch项目中,我需要一个特定的类,不仅要有一个委托对象,还要有很多委托对象.

看起来我应该为这些代表创建一个NSArray; 问题是NSArray会保留所有这些代理,它不应该保留(按惯例对象不应该保留它们的代理).

我应该编写自己的数组类来防止保留还是有更简单的方法?谢谢!

iphone cocoa-touch delegates retain nsarray

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

更改Django admin list_display中的可点击字段

在Django 1.8.6中,默认情况下,每当我向list_displayModelAdmin子类提供选项时,列表中的第一个字段变为可单击并指向对象编辑页面.

有没有办法保持字段的顺序list_display,但更改可点击的字段?

目前,我有id可点击的字段(它先进入list_display),这有点小.我想更好地点击,比如说,name转到编辑页面.

python django django-models django-forms django-admin

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

c函数内的_cmd值

_cmd当我从C风格的函数体中访问变量时,变量的值是多少?

它仅在选择器(Objective-C)方法中定义吗?

PS

这个问题可能源于我对什么不理解_cmd.如果有人为我提供了一个很好的解释来源,我将不胜感激.

cmd objective-c selector

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

自动实现的属性的代码合同

有没有办法将合同放在.NET中自动实现的属性上?(如果答案是'是'怎么办?)?

(我假设使用DevLabs的.NET代码合同)

.net c# properties automatic-properties code-contracts

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

空体构造函数中的合同前置条件

早上好!我正在写一个用于绘制直方图的类,为了方便用户,我决定添加一些便利构造函数.

但是,一旦我最近从DevLabs切换到.NET代码合同,我想充分利用前提条件来防止我自己(或某人)的愚蠢.

    public HistoGrapher(IList<string> points, IList<T> values)
        : this(points.Select((point, pointIndex) => new KeyValuePair<string, T>(point, values[pointIndex])))
    {
        Contract.Requires<ArgumentNullException>(points != null, "points");
        Contract.Requires<ArgumentNullException>(values != null, "values");
        Contract.Requires<ArgumentException>(points.Count == values.Count, "The lengths of the lists should be equal.");
    }

    public HistoGrapher(IEnumerable<KeyValuePair<string, T>> pointValuePairs)
    {
        // useful code goes here
    }
Run Code Online (Sandbox Code Playgroud)

有一件事让我困惑.如果合同被破坏,我不希望第一个构造函数调用第二个构造函数; 但是,假设this(...)在执行第一个构造函数的主体之前将执行调用.

这段代码会按我的意愿运行吗?我还没有尝试过.如果没有,是否有能力解决这样的问题?

.net c# constructor code-contracts

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

NSComparisonResult和NSComparator - 它们是什么?

什么是NSComparisonResultNSComparator

我见过其中一个类型定义,类似于:

typedef NSComparisonResult (^NSComparator)(id obj1, id obj2);
Run Code Online (Sandbox Code Playgroud)

它与函数指针有什么不同吗?

而且,我甚至无法猜出^符号的含义.

iphone function-pointers objective-c ios objective-c-blocks

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

委托堆栈效率

假设我已经编写了这样一个类(函数的数量并不重要,但实际上,将会有大约3或4个).

    private class ReallyWeird
    {
        int y;

        Func<double, double> f1;
        Func<double, double> f2;
        Func<double, double> f3;

        public ReallyWeird()
        {
            this.y = 10;

            this.f1 = (x => 25 * x + y);
            this.f2 = (x => f1(x) + y * f1(x));
            this.f3 = (x => Math.Log(f2(x) + f1(x)));
        }

        public double CalculusMaster(double x)
        {
            return f3(x) + f2(x);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我想知道C#编译器是否可以优化这样的代码,以便它不会经历多次堆栈调用.

是否能够在编译时内联代理?如果是,在哪些条件和哪些限制?如果不是,有答案为什么?

另一个问题,甚至可能更重要:它会比我声明f1, f2 and f3的方法慢得多吗?

我问这个是因为我想尽可能保持我的代码为DRY,所以我想实现一个扩展基本随机数生成器(RNG)功能的静态类:它的方法接受一个委托(例如来自NextInt()RNG的方法)并返回另一个Func代表(例如用于生成ulongs),建立在前者之上.只要有许多不同的RNG可以产生ints,我宁愿不考虑在不同的地方实施十次相同的扩展功能.

因此,可以多次执行该操作(即,类的初始方法可以由代表"包裹"两次或甚至三次).我想知道性能开销会是什么样的.

谢谢!

c# random performance delegates inline

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

CGGradientCreateWithColors返回一个空指针

该问题在主题中描述; 这是我的代码如下:

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

NSArray *colors = [NSArray arrayWithObjects:[UIColor redColor], [UIColor blueColor], nil];
CGGradientRef gradient = CGGradientCreateWithColors(NULL, (CFArrayRef)colors, NULL);
Run Code Online (Sandbox Code Playgroud)

不起作用.实际上,最后一次通话返回nil;

当我用引用替换第一个参数时NULL,它都CGColorSpace不起作用,例如Device RGB.

怎么了,有没有人有想法?

cgcolorspace ios

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

UIView animateWithDuration:延迟:工作很奇怪

我遇到了iPhone动画块的奇怪问题.这段代码:

[UIView animateWithDuration:2 delay: 0 options: 0 animations:
^(void) { [controller setBackgroundColor: [UIColor blueColor]]; }
completion: nil];

[UIView animateWithDuration:2 delay: 2 options: 0 animations:
^(void) { [controller setBackgroundColor: [UIColor redColor]]; }
completion: nil];
Run Code Online (Sandbox Code Playgroud)

立即将背景设置为红色,而不通过蓝色状态.对于这段代码,即使是同样的事情:

[UIView animateWithDuration:2 delay: 0 options: 0 animations:
^(void) { [controller setBackgroundColor: [UIColor blueColor]]; }
completion: 

^(BOOL wrwg) {
    [UIView animateWithDuration:2 delay: 2 options: 0 animations:
    ^(void) { [controller setBackgroundColor: [UIColor redColor]]; }
    completion: nil];
}];
Run Code Online (Sandbox Code Playgroud)

也就是说,我试图在第一个动画完成之后运行第二个动画.有什么问题?

iphone animation objective-c uiview

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