小编Tha*_*ham的帖子

替换Makefile中的文件名

我通常使用这一行将OBJECTS = $(SOURCES:.cpp=.o)SOURCES 中文件的 .cpp 扩展名替换为 .o 扩展名。我的项目现在包含扩展名为 .c 的文件和 .cpp。如何修改该行以使其将所有 .c 和 .cpp 扩展名替换为 .o?

我不喜欢如下所示的两行解决方案:

OBJECTS_TMP = $(SOURCES:.cpp=.o)
OBJECTS = $(OBJECT_TMP:.c=.o)
Run Code Online (Sandbox Code Playgroud)

我想要类似的东西

OBJECTS = $(SOURCES:(.cpp|.c)=.o)
Run Code Online (Sandbox Code Playgroud)

甚至

OBJECTS = $(SOURCES:.*=.o)
Run Code Online (Sandbox Code Playgroud)

这可能吗?如何实现?

makefile

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

React Native 无法打开任何 URL

请帮助我,尝试了很多方法。安卓错误==

E/ReactNativeJS(4398):'发生错误',{ [错误:无法打开 URL ' https://www.facebook.com ':没有找到处理意图的活动 { act=android.intent.action.VIEW dat = https://www.facebook.com flg=0x10000000 }] framesToPop: 1, 代码: 'EUNSPECIFIED' }

_onPressButton() {
    Linking.openURL('https://www.facebook.com').catch(err => console.error('An error occurred', err));

  }
  render() {
    return (
      <View style={{paddingTop: 22}}>
        <ListView
          dataSource={this.state.dataSource}
          renderRow={(rowData) =>  
            <TouchableHighlight  onPress={this._onPressButton} > 
              <View style={{marginBottom:10, marginLeft:5, flex: 1, flexDirection: 'row',justifyContent: 'flex-start'}}>

              <View style={{width:30}}><Image source={{ uri: rowData.img }} style={{width:25, height:25, marginTop: 5}} /></View>
              <View style={{alignSelf: 'stretch'}}>
              <Text>{rowData.title}</Text>
              <Text style={{fontSize:10}}>{rowData.author}, {rowData.company}, {rowData.time}</Text>
              </View>
            </View>
            </TouchableHighlight>


          }
        />
      </View>
    );
  }
Run Code Online (Sandbox Code Playgroud)

android react-native

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

如何测试是否已触发UIControlEvents

我有一个实现自定义的库UIControl,其方法是.valueChanged在调用时触发事件.我想测试该行为的方法.

我的自定义控件:

class MyControl: UIControl {
    func fire() {
        sendActions(for: .valueChanged)
    }
}
Run Code Online (Sandbox Code Playgroud)

而且测试:

import XCTest

class ControlEventObserver: NSObject {
    var expectation: XCTestExpectation!

    init(expectation anExpectation: XCTestExpectation) {
        expectation = anExpectation
    }

    func observe() {
        expectation.fulfill()
    }
}

class Tests: XCTestCase {
    func test() {
        let myExpectation = expectation(description: "event fired")
        let observer = ControlEventObserver(expectation: myExpectation)
        let control = MyControl()
        control.addTarget(observer, action: #selector(ControlEventObserver.observe), for: .valueChanged)
        control.fire()
        waitForExpectations(timeout: 1) { error in
            XCTAssertNil(error)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是observe …

selector nsrunloop ios xctest swift

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

GCD:异步等待条件

在我的iOS应用程序中,我想在更新UI之前等待条件成为现实.我这样做:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
  while (!condition) NSLog("waiting for the condition");
  dispatch_sync(dispatch_get_main_queue, ^{
    //update the UI here
  });
});
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,但我想问一下使用while循环来做等待工作是好还是不好,如果有更好的方法.谢谢!

---更新

该条件实际上是4个BOOL变量的组合.每个变量都与来自服务器的内容请求相关联.我正在使用AFNetworking框架.在4个请求中的每个请求的完成块中,我将关联的BOOL变量设置为YES.所以,实际的while循环是这样的:

while (!([MyRequest request1].isFinished && [MyRequest request2].isFinished && [MyRequest request3].isFinished && [MyRequest request4].isFinished)) NSLog("waiting for the condition");
Run Code Online (Sandbox Code Playgroud)

asynchronous grand-central-dispatch ios

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

在这种情况下,为什么nil可以从非可选函数返回?

我想在操场下面的代码,我不明白为什么编译器不给当出现错误bar,这是nil,从非可选功能恢复; 以及为什么它nil在与...进行比较时会发生nil并且在声明foobar永远不会出现时给出错误消息似乎不正确nil.

编辑:既然Optional也是Any,为什么不允许nil直接返回foo2

func foo() -> Any {
    let bar: String? = nil
    return bar
}

let foobar = foo()

if foobar == nil {

}

func foo2() -> Any {
    return nil
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

null swift swift2

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