小编Con*_*lor的帖子

在C中使用带有非选项参数的getopt

我正在C中创建一个处理大量命令行参数的小程序,所以我决定使用getopt为我排序.

但是,我希望两个非选项参数(源文件和目标文件)是必需的,因此在调用程序时必须将它们作为参数,即使没有标志或其他参数.

这是我用标志处理参数的简化版本:

while ((c = getopt(argc, argv, "i:d:btw:h:s:")) != -1) {
    switch (c) {
        case 'i': {
            i = (int)atol(optarg);
        }
        case 'd': {
            d = (int)atol(optarg);
        }
        case 'b':
            buf = 1;
            break;
        case 't':
            time = 1;
            break;
        case 'w':
            w = (int)atol(optarg);
            break;
        case 'h':
            h = (int)atol(optarg);
            break;
        case 's':
            s = (int)atol(optarg);
            break;
        default:
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

如何编辑它以便还处理非选项参数?

我还希望能够在选项之前之后获得非选项,那么如何处理呢?

c arguments getopt getopt-long argv

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

使用Google Drive API for iOS应用

如何通过iPhone应用程序下载Google云端硬盘文档的修​​订历史记录列表(用户不拥有)?

我真正想要的是上次修订的日期和时间.

sdk objective-c ios google-drive-api

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

使用Objective-C进行JavaScript注入的方法

我正在寻找将JavaScript注入WebView(在Cocoa中)的不同方法.

我试图将一些javascript注入<head>已加载到WebView的HTML文件的标记中.

以下方法对我不起作用.它似乎只适用于非常简单的JavaScript,没有嵌套括号(来自我测试的):

[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"var script = document.createElement('script');"
                                                     "script.type = 'text/javascript';"
                                                     "script.text = \"some simple JavaScript"
                                                     "}\";"
                                                     "document.getElementsByTagName('head')[0].appendChild(script);"]];
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以使用更复杂的JavaScript/jQuery函数?

我试图注入的完整代码如下:

function submitFormForTime(time){
    $(\".t_h\").each(function(i, obj) {
        if ($(this).text() != time) return;
        $(this).parent().find(\"form\").each(function(i, obj){
            obj.submit();
        });
    });
}
Run Code Online (Sandbox Code Playgroud)

javascript iphone objective-c code-injection

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

以编程方式更改NSTextField中的文本?

我习惯在Cocoa-touch中这样做,所以我认为它会很简单.我已经尝试过了:

field.text = [nsstring stringwithformat:@"%i", number];
[field setText:@"%i", number];
Run Code Online (Sandbox Code Playgroud)

和setString,都无济于事.

macos cocoa nsstring nstextfield

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

将Google Objective-C API"GTL"添加到iPhone项目中

如何将Google Drive API添加到我的iPhone项目中,我可以使用它吗?

到目前为止,我已将GTL项目拖入我当前的应用程序项目中(因此它嵌套在我的应用程序项目中).然后,在我的应用程序目标的构建阶段,我添加了GTL.framework,然后将GTL.framework添加到我的'Link binary with Libraries'(参见附图).这会引发以下错误:

clang: error: no such file or directory: '/Users/xxx/Library/Developer/Xcode/DerivedData/Golf-hfbczyaemhyzgvbrtgdxqnlzeuaa/Build/Products/Debug-iphonesimulator/GTL/GTL'
Run Code Online (Sandbox Code Playgroud)

我该怎么解决这个问题?

在此输入图像描述

api sdk xcode objective-c google-drive-api

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

使用CoreGraphics在iPhone上绘制简单的线条

我想在用户触摸屏幕的位置和触摸结束的位置之间绘制一条直线.我需要多行,因为如果用户重复触摸 - 拖动 - 释放动作,我还需要一个按钮来清除所有行.到目前为止,我在下面有这个代码,但是一旦再次调用它,我收到错误:CGContextSetStrokeColor:无效的上下文0x0.此错误重复:CGContextBeginPath,CGContextMoveToPoint,CGContextAddLineToPoint,CGContextDrawPath.

有任何想法吗?

- (void)drawRect:(CGRect)rect {   
    c = UIGraphicsGetCurrentContext();

    CGFloat black[4] = {0, 0, 
                        0, 1};
    CGContextSetStrokeColor(c, black);
    CGContextBeginPath(c);
    CGContextMoveToPoint(c, 100, 100);
    CGContextAddLineToPoint(c, 100, 200);
    CGContextStrokePath(c);
}
Run Code Online (Sandbox Code Playgroud)

cocoa-touch drawing core-graphics ios

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

提升程序选项相关选项

是否有任何方法可以使程序选项依赖于其他选项使用boost::program_options

例如,我的程序可以接受以下示例参数:

wifi --scan --interface=en0
wifi --scan --interface=en0 --ssid=network
wifi --do_something_else
Run Code Online (Sandbox Code Playgroud)

在此示例中,interfacessid参数仅在伴随时才有效scan.他们依赖于这个scan论点.

有没有办法自动执行此操作boost::program_options?它当然可以手动实现,但似乎必须有更好的方法.

c++ boost command-line-arguments boost-program-options

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

为什么 reinterpret_cast 不是 constexpr?

考虑以下片段:

static constexpr uint8_t a = 0;
static constexpr const int8_t *b = reinterpret_cast<const int8_t *>(&a);
Run Code Online (Sandbox Code Playgroud)

这无法通过 编译error: a reinterpret_cast is not a constant expression,因为C++ 标准禁止使用reinterpret_castin constexpr

但是,如果我想将值 b 存储在PROGMEM(对于 AVR 微控制器)中,编译会成功:

static constexpr uint8_t a = 0;
static const int8_t PROGMEM *const b = reinterpret_cast<const int8_t *>(&a);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,编译器能够证明该表达式reinterpret_cast<const int8_t *>(&a)是编译时常量,因为它将其结果(指向某个包含零的字节的地址)插入到二进制程序空间中:

_ZL1g:
  .zero   1
  .section        .progmem.data,"a",@progbits
  .type   _ZL1b, @object
  .size   _ZL1b, 2
_ZL1b:
  .word   _ZL1g
Run Code Online (Sandbox Code Playgroud)

另外,我的理解是这reinterpret_cast是一个编译时指令。那么为什么它不能在 a …

c++ avr reinterpret-cast constexpr c++11

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

我可以传递给方法的参数数量是否有限制?

我只是想知道我可以使用以下样式传递给Objective-C中的方法的参数数量是否有限制:

- (void)example:(int)i forTime:(int)i forDate:(NSDate *)date etc etc
Run Code Online (Sandbox Code Playgroud)

这当然是假设的,但我发现知道这些限制背后的原因很有意思(例如URL中的字符限制等),我喜欢在StackOverflow上看到其他人对这些问题的看法.

即使限制允许传递的参数数量,是否仍然可以将NSArray包含对象作为参数传递,然后只使用方法从数组中调用这些对象objectAtIndex

arguments objective-c

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

获取numpy.poly1d曲线的最小点数

我有一个numpy.poly1d多项式如下:

c = np.poly1d([2,-4,-28,62,122,-256,-196,140,392,240,72])
Run Code Online (Sandbox Code Playgroud)

在绘制范围时,曲线如下所示-2.5 <= x <= 2.5:

在此输入图像描述

如何在给定范围内找到该曲线的最小点,而不使用用于绘制曲线的离散值(我的意思是仅使用连续poly1d对象)?

python numpy scipy

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