我正在使用React Native开发一个简单的待办事项列表应用程序,我的问题如下:我的项目根目录中有一个NavigatorIOS,一个包含ListView作为初始路由的组件,以及一个导致任务创建视图.
创建新任务后,将弹出视图以显示ListView.我正在尝试将新创建的任务添加到此ListView(其数据源包含在组件状态中).
如何进行这样的操作,有什么好的做法?我会在纯本机应用程序中使用委托,但在这里,两个视图都由NavigatorIOS实例处理.
index.ios.js
addTask() {
console.log("Test");
},
render() {
return (
<React.NavigatorIOS
ref="nav"
style={styles.container}
tintColor="#ED6063"
initialRoute={{
title: "Tasks",
component: TasksList,
rightButtonTitle: 'Add',
onRightButtonPress: () => {
this.refs.nav.navigator.push({
title: "New task",
component: NewTask,
passProps: {
onTaskAdded: this.addTask
},
leftButtonTitle: "Cancel"
});
}
}}/>
);
}
Run Code Online (Sandbox Code Playgroud)
NewTask.js
taskAdded() {
console.log("Added: " + this.state.title + " - " + this.state.description);
this.props.onTaskAdded({
title: this.state.title,
description: this.state.description
});
this.props.navigator.pop();
}
Run Code Online (Sandbox Code Playgroud)
TasksList.js
var dataSource = new ListView.DataSource({
rowHasChanged: (r1, r2) => r1 !== …Run Code Online (Sandbox Code Playgroud) 我正在使用XCTest在我的项目中编写单元测试,当使用XCAssertNil()或XCAssertNotNil()方法时,XCTest框架崩溃了.
这是我的测试:
XCTAssertNotNil(messageCollection.fieldName, "field_name must be not-nil")
Run Code Online (Sandbox Code Playgroud)
这是堆栈跟踪:
2015-06-22 17:05:17.629 xctest[745:8747] *** Assertion failure in void _XCTFailureHandler(XCTestCase *, BOOL, const char *, NSUInteger, NSString *, NSString *, ...)(), /SourceCache/XCTest_Sim/XCTest-7701/XCTestFramework/OtherSources/XCTestAssertionsImpl.m:41
Test Case '-[Wakanda_iOS_Framework_Tests.WAKAdapterTest testEntityCollectionParsing]' started.
2015-06-22 17:05:17.631 xctest[745:8747] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Parameter "test" must not be nil.'
Run Code Online (Sandbox Code Playgroud)
似乎XCTest有一个名为test的参数,它不能为零,对于预期检查nil(或非nil)值的方法来说很奇怪......有没有其他人得到这个问题并解决了它?
我有一个全角标签,带有动态文本,因此可以是两个字符或十个字符.我需要在左侧部分内嵌显示图像,始终与第一个字母相距10px.请参阅下面的示例.


现在,我只是放了一个全角标签,在运行时,我用boundingRectWithSize:方法测量文本宽度,并以编程方式调整我的图像约束.
你有没有任何好主意建立这种界面而不用手动测量文字宽度?
我使用Xcode 6和Swift构建了一个框架,我的框架使用SwiftyJSON作为依赖 - 通过Carthage添加.我存档了我的框架,并为使用的模拟器和iOS设备创建了一个版本lipo,当我尝试将我的框架用于一个空的应用程序时,我在运行时遇到了崩溃:
dyld: Library not loaded: @rpath/SwiftyJSON.framework/SwiftyJSON
Referenced from: /Users/hd/Library/Developer/CoreSimulator/Devices/324FD1CD-4A06-459B-AE6D-318197B5697E/data/Containers/Bundle/Application/555871BB-7AA1-4AED-90CE-EE0A628A794F/CollaborativeTodo.app/Frameworks/XXXXX.framework/XXXXX
Reason: no suitable image found. Did find:
/Users/hd/Library/Developer/CoreSimulator/Devices/324FD1CD-4A06-459B-AE6D-318197B5697E/data/Containers/Bundle/Application/555871BB-7AA1-4AED-90CE-EE0A628A794F/CollaborativeTodo.app/Frameworks/SwiftyJSON.framework/SwiftyJSON: no matching architecture in universal wrapper
Run Code Online (Sandbox Code Playgroud)
这是我的树状看起来像 - 我的框架名称是故意模糊的:

常规选项卡:

构建阶段:

如果我在我的项目中使用Carthage包含SwiftyJSON,它可以工作,但我不希望用户被强制包含第三方库.如何将SwiftyJSON嵌入我的框架并告诉Xcode在运行时使用嵌入式版本,而不是试图在项目中找到框架?
我正在使用该performSegueWithIdentifier:sender:方法,我想通过sender参数传递几个参数.在Objective-C,我创建的NSDictionary 上即时使用@{"myKey": myValue}的语法.
我在Swift中尝试了几种方法,但编译器总是给我一个错误:'AnyObject?' 没有名为{'Element'或'Key'}的成员
如何重现Swift中的预期行为?谢谢!
编辑:这是我的代码:
self.stopCamera()
dispatch_async(dispatch_get_main_queue(), { () -> Void in
self.performSegueWithIdentifier("backCameraVCtoFrontCameraVC", sender: [("image", image), ("fitler", filter)])
})
Run Code Online (Sandbox Code Playgroud)