我将以下数据保存为NSString:
{
Key = ID;
Value = {
Content = 268;
Type = Text;
};
},
{
Key = ContractTemplateId;
Value = {
Content = 65;
Type = Text;
};
},
Run Code Online (Sandbox Code Playgroud)
我想将此数据转换为NSDictionary包含键值对的数据.
我首先尝试将其转换NSString为JSON对象,如下所示:
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试:
NSString * test = [json objectForKey:@"ID"];
NSLog(@"TEST IS %@", test);
Run Code Online (Sandbox Code Playgroud)
我收到的价值为NULL.
任何人都可以提出什么问题?
如果请求参数正常,我设计了一个web服务来执行任务,如果请求参数错误或为空,我会返回401 Unauthorized HTTP状态代码.
我正在使用RestTemplate执行测试,如果webservice成功回复,我就能验证HTTP 200 OK状态.但是,我无法测试HTTP 401错误,因为RestTemplate它本身会抛出异常.
我的测试方法是
@Test
public void testUnauthorized()
{
Map<String, Object> params = new HashMap<String, Object>();
ResponseEntity response = restTemplate.postForEntity(url, params, Map.class);
Assert.assertEquals(HttpStatus.UNAUTHORIZED, response.getStatusCode());
Assert.assertNotNull(response.getBody());
}
Run Code Online (Sandbox Code Playgroud)
异常日志是
org.springframework.web.client.HttpClientErrorException: 401 Unauthorized
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:88)
at org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:533)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:489)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:447)
at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:318)
Run Code Online (Sandbox Code Playgroud)
我如何测试webservice是否回复了HTTP状态码401?
所以我最近一直在阅读有关coinduction的内容,现在我想知道:Haskell列出了归纳还是共同?我也听说Haskell没有区分这两者,但如果是这样的话,他们怎么这样做呢?
列表是归纳定义的data [a] = [] | a : [a],但可以共同使用,ones = a:ones.我们可以创建无限列表.然而,我们可以创建有限列表.他们是哪一个?
相关的是Idris,其中类型List a严格地是归纳类型,因此仅是有限列表.它的定义类似于Haskell中的方式.然而,Stream a是一种共同类型,建模无限列表.它被定义为(或者更确切地说,定义相当于)codata Stream a = a :: (Stream a).创建无限List或有限Stream是不可能的.但是,当我写出定义时
codata HList : Type -> Type where
Nil : HList a
Cons : a -> HList a -> HList a
Run Code Online (Sandbox Code Playgroud)
我得到了我对Haskell列表的期望,即我可以创建有限和无限结构.
所以让我把它们归结为几个核心问题:
Haskell不区分归纳和共感类型吗?如果是这样,那是什么形式化?如果没有,那么哪个是[a]?
HList是coinductive吗?如果是这样,coinductive类型如何包含有限值?
如果我们定义data HList' a = L (List a) | R (Stream a)怎么办?会考虑什么和/或仅对它有用HList?
我想只在运行早于OS的设备上执行代码块iOS8.我做不到:
if #available(iOS 8.0, *) == false {
doFoo()
}
Run Code Online (Sandbox Code Playgroud)
我现在使用的解决方案是:
if #available(iOS 8.0, *) { } else {
doFoo()
}
Run Code Online (Sandbox Code Playgroud)
,但感觉笨重.还有另一种方法可以#available优雅地否定Swift 的声明吗?
我刚开始学习如何制作iOS应用程序,并且正在使用免费的个人开发者帐户.
到目前为止,我已经制作了四个应用程序,但似乎无法安装三个以上的应用程序.即使我安装了三个应用程序,并且更新其中一个已安装的应用程序,我在Xcode中收到以下错误消息:
应用安装失败
已达到免费开发配置文件的最大应用数量.
根据我的阅读,每个应用程序应该签署一个星期,但我只是编写了几天.
如何安装更多应用,或者是否必须从设备中删除现有应用?
我有以下图库实体
class Gallery
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var ArrayCollection
* @ORM\OneToMany(targetEntity="Tessa\GalleryBundle\Entity\Photo", mappedBy="gallery", cascade={"persist", "remove"})
*/
private $photos;
/* ... */
}
Run Code Online (Sandbox Code Playgroud)
这gallery与实体的manyToOne关系有关PointOfInterest.这是宣言
class PointOfInterest
{
/* ... */
/**
* @ORM\ManyToOne(targetEntity="Tessa\GalleryBundle\Entity\Gallery", cascade={"persist", "remove"})
* @ORM\JoinColumn(nullable=false)
*/
private $gallery;
/* ... */
Run Code Online (Sandbox Code Playgroud)
我还使用表单来更新PointOfInterest实体.这是表格声明
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('gallery', new GalleryType())
;
}
Run Code Online (Sandbox Code Playgroud)
和 …
我的unittest文件夹以这种方式组织.
.
|-- import
| |-- import.kc
| |-- import.kh
| `-- import_test.py
|-- module
| |-- module.kc
| |-- module.kh
| `-- module_test.py
`-- test.py
Run Code Online (Sandbox Code Playgroud)
我想简单地运行test.py我的每个*_test.py使用unittest python模块.目前,我的test.py包含
#!/usr/bin/env python
import unittest
if __name__ == "__main__":
suite = unittest.TestLoader().discover('.', pattern = "*_test.py")
unittest.TextTestRunner(verbosity=2).run(suite)
Run Code Online (Sandbox Code Playgroud)
python文档说它应该自动在子文件夹中发现我的测试.但事实并非如此.
目前,它只输出
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
Run Code Online (Sandbox Code Playgroud)
我确定这不是我的*_test.py文件的问题,因为当我将它们移动到根目录时,它工作正常..我做错了什么?
我想详细了解
.drive(resultsTableView.rx_itemsWithCellIdentifier("WikipediaSearchCell",
cellType: WikipediaSearchCell.self))
{ (_, viewModel, cell) in
cell.viewModel = viewModel
}
Run Code Online (Sandbox Code Playgroud)
来自WikipediaSearchViewController.swift第47-64行.我试图提取参数来查看具体的类型签名,但重写为
let temp1 = searchBar.rx_text
.asDriver()
.throttle(0.3)
.distinctUntilChanged()
.flatMapLatest { query in
API.getSearchResults(query)
.retry(3)
.retryOnBecomesReachable([], reachabilityService: ReachabilityService.sharedReachabilityService)
.startWith([]) // clears results on new search term
.asDriver(onErrorJustReturn: [])
}
.map { results in
results.map(SearchResultViewModel.init)
}
let driveArg1 = resultsTableView.rx_itemsWithCellIdentifier("WikipediaSearchCell", cellType: WikipediaSearchCell.self)
let driveArg2 = { (_, viewModel: SearchResultViewModel, cell: WikipediaSearchCell) in
cell.viewModel = viewModel
}
temp1.drive(driveArg1, curriedArgument: driveArg2)
.addDisposableTo(disposeBag)
Run Code Online (Sandbox Code Playgroud)
给
不能使用类型'(String,cellType:UITableViewCell.Type)'的参数列表调用'rx_itemsWithCellIdentifier'
对于driveArg1和
没有更多上下文,表达式的类型是模糊的
对于driveArg2.
的签名drive和rx_itemsWithCellIdentifier …
我从MVVM开始,以便将逻辑代码从视图中分离出来.但我有点担心在点击发出请求的按钮时将progressHUD相关代码放在哪里.
之前,我曾经这样做过:
//Before
@IBAction func startRequestTapped() {
SVProgressHUD.show()
self.apiClient.requestObservable().subscribe(onError: { (error) in
SVProgressHUD.hide()
}, onCompleted: {
SVProgressHUD.hide()
})
}
Run Code Online (Sandbox Code Playgroud)
但是当我使用mvvm时,我确实喜欢这样:
//In the viewModel
public var validateButtonDidTap = PublishSubject<Void>()
init() {
validateButtonDidTap.flatMap { (_)
return self.apiClient.requestObservable()
}
}
// In the viewController
viewDidLoad() {
let tap = self.validateButton.rx.tap
tap.bindTo(self.viewModel.validateButtonDidTap)
}
Run Code Online (Sandbox Code Playgroud)
其中,我不知道将ProgressHUD隐藏或显示放在哪里.

我想创建一个看起来像这个图像的表格视图!谁可以告诉我一个例子或说我该怎么做?
ios ×3
swift ×3
rx-swift ×2
coinduction ×1
discover ×1
doctrine-orm ×1
haskell ×1
idris ×1
induction ×1
infinite ×1
iphone ×1
json ×1
mvvm ×1
nsdictionary ×1
nsstring ×1
objective-c ×1
python ×1
rest ×1
resttemplate ×1
slider ×1
spring-mvc ×1
symfony ×1
tableview ×1
unit-testing ×1
xcode ×1
xcode8 ×1