小编Voi*_*ain的帖子

在C编程语言中,`:>`(冒号,大于,又名微笑面)是什么意思?

最近我遇到了一种奇怪的C语言编程语法.

首先,让我们看看代码:

main(void) {
int a[10:> ;
printf("asdf");
return 0;
}
Run Code Online (Sandbox Code Playgroud)

你可以用gcc编译它:

/tmp  gcc sample.c
sample.c: In function ‘main’:
sample.c:3: warning: incompatible implicit declaration of built-in function ‘printf’
Run Code Online (Sandbox Code Playgroud)

如您所见,没有错误或任何与之相关的警告.所以这意味着在CPL中:>等于]

怎么会发生这种情况?

顺便说一句:我正在使用gcc 4.2.1.

c compiler-construction

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

在iOS上使用Core Image的内存有效方式?

我在我的应用程序中使用Core Image过滤器,在运行iOS 7的iPhone 5设备上一切正常,但是当我在iPhone 4s上测试时,它只有512MB的总内存,应用程序崩溃了.

在这种情况下,我从相机拍摄了2张图像,每张图像的分辨率为2448x3264.在我的iPhone 5中,根据乐器,整个过程在峰值时占用150MB.

仪器内存使用

但是,当我尝试在iPhone 4s上运行相同的代码时,即使整个内存使用率非常低(大约8 MB),仪器也会一直给我内存低警告.这是下面的截图.

iphone 4s内存使用情况

这是代码,基本上,我从我的应用程序的文档文件夹中加载了两个图像,并连续应用了2个过滤器:

    CIImage *foreground = [[CIImage alloc] initWithContentsOfURL:foregroundURL];
    CIImage *background = [[CIImage alloc] initWithContentsOfURL:backgroundURL];
    CIFilter *softLightBlendFilter = [CIFilter filterWithName:@"CISoftLightBlendMode"];
    [softLightBlendFilter setDefaults];
    [softLightBlendFilter setValue:foreground forKey:kCIInputImageKey];
    [softLightBlendFilter setValue:background forKey:kCIInputBackgroundImageKey];

    foreground = [softLightBlendFilter outputImage];
    background = nil;
    softLightBlendFilter = nil;

    CIFilter *gammaAdjustFilter = [CIFilter filterWithName:@"CIGammaAdjust"];
    [gammaAdjustFilter setDefaults];
    [gammaAdjustFilter setValue:foreground forKey:kCIInputImageKey];
    [gammaAdjustFilter setValue:[NSNumber numberWithFloat:value] forKey:@"inputPower"];
    foreground = [gammaAdjustFilter valueForKey:kCIOutputImageKey];

    gammaAdjustFilter = nil;

    CIContext *context = [CIContext contextWithOptions:nil];
    CGRect extent = [foreground extent];
    CGImageRef cgImage = …
Run Code Online (Sandbox Code Playgroud)

memory iphone objective-c core-image ios

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

如何在Swift中初始化NSWindowController?

我想从一个nib文件初始化一个窗口控制器对象,这很简单吗?但我根本无法让它发挥作用.

根据我之前在ObjC的经验,我写下了以下代码:

init()  {
    super.init(windowNibName: "SplitWindowController")
}
Run Code Online (Sandbox Code Playgroud)

在app委托文件中,我只需初始化并显示窗口:

var myWindowController: MyWindowController = MyWindowController()
myWindowController.showWindow(self)
myWindowController.window.makeKeyAndOrderFront(nil)
Run Code Online (Sandbox Code Playgroud)

但是编译器给了我这个错误:Must call a designated initializer of the superclass 'NSWindowController'.并根据雨燕版本NSWindowController定义,只有3个指定的初始值,即init(),init(window),init(coder).我不知道接下来该做什么.我应该NSCoder从一个nib文件构建一个,我不知道该怎么办?

cocoa appkit swift

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

如何向我的Android应用程序授予系统权限?

我正在实现一个从设备上静默卸载应用程序的演示.

在adb shell中,我可以使用pm uninstall packagename来完成任务,但是当我编写代码时,我得到了一些权限被拒绝的错误.

我已经谷歌搜索了一段时间,并发现要获得DELETE_PACKAGES权限,我必须使用与系统相同的证书签署我的应用程序.

那么,任何人都可以给我一些关于如何做到这一点的提示吗?或者,无论如何我可以做我的应用程序作为系统服务运行?

permissions android

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

scala - yield语法

我正在读一本关于scala编程的书(Scala中的Programming),我对yield语法有一个疑问.

根据这本书,yield的语法可以表示为:for子句yield body

但是当我尝试运行下面的脚本时,编译器会抱怨getName的参数太多了

def scalaFiles = 
  for (
    file <- filesHere
    if file.isFile
    if file.getName.endsWith(".scala")
  ) yield file.getName {
    // isn't this supposed to be the body part?
  }
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是yield语法的"body"部分是什么,如何使用它?

scala yield

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

何时需要(或禁止)方法的括号?

可能重复:
Scala方法调用中括号的规则是什么?

我是Scala的新手,我对postfix运算符上的()有一些困惑

我被告知toLong和toString是任何整数的后缀运算符,所以我尝试了以下操作:

scala> 7 toString
res18: java.lang.String = 7

scala> 7.toString()
res19: java.lang.String = 7

scala> 7.toString
res20: java.lang.String = 7

scala> 7.toLong
res21: Long = 7 

scala> 7.toLong()
<console>:8: error: Long does not take parameters
              7.toLong()
                      ^
Run Code Online (Sandbox Code Playgroud)

那么,何时在运营商之后使用"()"?那有什么模式吗?

十分感谢!

scala

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

Broken Pipe 和 Connection reset by peer 有什么区别?

在我的日常工作中,我需要通过SSH保持连接以断开服务器,我通常会遇到两种不同的错误,第一种是“Broken Pipe”,第二种是“Connection reset by peer”。

我想知道这两组错误有什么区别?

networking broken-pipe connection-reset

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

在cpp中基于FFT的图像配准(可选地使用OpenCV)?

我正在尝试对齐从手持相机拍摄的两个图像。

最初,我尝试使用warpPerspective基于SIFT / SURF特征点的OpenCV 方法。问题在于,当图像质量较高(3000x4000)时,特征提取和匹配过程可能会非常缓慢。我试图在找到特征点之前按比例缩小图像,结果却不如以前。(由Mat生成的findHomography不应受到按比例缩小图像的影响,对吗?)有时,由于缺少良好的功能点比赛,结果很奇怪。

搜索该主题后,似乎可以解决Fourier域中的问题,从而加快注册过程。我发现了这个问题,将我引到了这里代码

唯一的问题是代码是用numpy用python编写的(甚至不使用OpenCV),这使得使用OpenCV很难将其重写为C ++代码(在OpenCV中,我只能找到dft,没有fftshift也没有fft东西,我是对NumPy不太熟悉,并且我不够勇敢,无法简单地忽略缺少的方法)。所以我想知道为什么没有使用C ++的傅立叶域图像注册实现?

你们能给我一些关于如何实现的建议,还是给我一个已经实现的C ++版本的链接?还是帮助我将python代码转换为C ++代码?

非常感谢!

c++ opencv numpy image image-processing

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

如何配置 spring 以忽略无效的 Accept 标头?

我正在使用 spring 来构建我的网络应用程序。

在我的自定义WebMvcConfigurationSupport类中,我设置基本ContentNegotiationConfigurer如下:

@Override
public void configureContentNegotiation(final ContentNegotiationConfigurer configurer) {
    configurer
            .favorPathExtension(false)
            .favorParameter(true)
            .parameterName("mediaType")
            .ignoreAcceptHeader(false)
            .useJaf(false)
            .defaultContentType(MediaType.APPLICATION_XML)
            .mediaType("json", MediaType.APPLICATION_JSON)
            .mediaType("xml", MediaType.APPLICATION_XML);
}
Run Code Online (Sandbox Code Playgroud)

我无法设置ignoreAcceptHeadertrue,因为我的一些客户依赖此标头进行响应。

但是,当我尝试使用无效Accept标头Accept: :*/*(请注意,额外的冒号)访问我的 API 时,spring 会重定向到错误页面/error,并显示以下日志:

@Override
public void configureContentNegotiation(final ContentNegotiationConfigurer configurer) {
    configurer
            .favorPathExtension(false)
            .favorParameter(true)
            .parameterName("mediaType")
            .ignoreAcceptHeader(false)
            .useJaf(false)
            .defaultContentType(MediaType.APPLICATION_XML)
            .mediaType("json", MediaType.APPLICATION_JSON)
            .mediaType("xml", MediaType.APPLICATION_XML);
}
Run Code Online (Sandbox Code Playgroud)

我可以改变这种行为吗?我想Accept完全忽略标题而不是跳转到错误页面。那可能吗?

java spring http spring-mvc http-accept-header

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

新的basecamp api告诉我这个地址没有大本营帐户

我是basecamp api的新手,在尝试最简单的例子时:

curl -u user:pass -H 'User-Agent: MyApp (yourname@example.com)' https://basecamp.com/999999999/api/v1/projects.json
Run Code Online (Sandbox Code Playgroud)

我得到错误说:

There's no Basecamp account at this address. Sign in to Launchpad to see your accounts.
Run Code Online (Sandbox Code Playgroud)

我用我的basecamp电子邮件地址替换了用户,并将密码作为密码替换.我输错了什么?

提前致谢!

api basecamp

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

将"过滤器"方法添加到元素列表的更好方法是什么?

我想对java中的元素列表实现一个过滤方法,所以我可以根据我的过滤器删除列表中的一些元素.而且,最重要的是,我想尽可能简单地设计界面.

这是我的实现:我创建了一个名为EasierList的类,在类中,我添加了一个方法,其签名和实现如下所示:

public IEasierList<T> filter(ISelection<T> filter) {
    List<T> result = new ArrayList<T>();
    for(T item : mInternalList) {
        if(filter.accept(item)) {
            result.add(item);
        }
    }

    mInternalList = result;
    return new EasierList<T>(this);
}
Run Code Online (Sandbox Code Playgroud)

至于ISelection接口,它非常简单:

public boolean accept(T obj);
Run Code Online (Sandbox Code Playgroud)

所以,你可以说,使用这个类的用户需要编写这样的代码来使用过滤器:

aEasierList.filter(new ISelection<T>() {
@Override
public boolean accept(T obj) {
        // some test
    return false;
}
});
Run Code Online (Sandbox Code Playgroud)

而且我想知道是否有更好的方法来做到这一点,我的意思是让界面更容易使用?

提前致谢!

java filter

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

OSX - 如何实现Preview.app之类的导出窗口?

我正在为OSX构建一个非基于文档的小型应用程序.我想像Preview.app那样实现导出表:

预览导出表

请注意,导出表使用户有机会选择文件类型和相关内容.

我的猜测是该表是一个系统级的开箱即用功能,但我找不到它,所以我怎样才能实现这样的功能呢?十分感谢!

PS:我正在将应用程序部署到10.7或更高版本.

macos cocoa objective-c

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