代码和日志不完整,看不出什么原因。猜测原因两个:
其实还咋执行,但是调试的问题你抓不到状态了
真的被中断了,具体原因要深究,不过建议你把queue做一个引用,长期持有,不作为局部变量,如果局部变量那么做一个串行队列的意义在哪里?
玩Linux-shell-php-java-objc-perl-mysql,没谱的青年,会写代码的猪,资深80后
没有足够的数据
gaosboy 回答了问题 · 2016-12-06
代码和日志不完整,看不出什么原因。猜测原因两个:
其实还咋执行,但是调试的问题你抓不到状态了
真的被中断了,具体原因要深究,不过建议你把queue做一个引用,长期持有,不作为局部变量,如果局部变量那么做一个串行队列的意义在哪里?
代码和日志不完整,看不出什么原因。猜测原因两个: 其实还咋执行,但是调试的问题你抓不到状态了 真的被中断了,具体原因要深究,不过建议你把queue做一个引用,长期持有,不作为局部变量,如果局部变量那么做一个串行队列的意义在哪里?
关注 3 回答 2
gaosboy 关注了问题 · 2016-12-06
GCDAsyncsocket 使用异步串行子线程中for循环执行一半就不执行了,代码如下,过程是点击发送按钮返回到主页面,然后异步执行下面的代码上传图片;
- (void)sendAction{
dispatch_queue_t queue = dispatch_queue_create("uploadImage", DISPATCH_QUEUE_SERIAL);
dispatch_async(queue, ^{
for (int i =0; i < 10; i++) {
NSLog(@"async ------------ %@", [NSThread currentThread]);
//第一张图的资源
PHAsset *asset = self.sendImageArray[i];
NSString *fileType;
NSString *fileName;
if (asset.mediaType == PHAssetMediaTypeImage) {
fileType = @"jpg";
NSData *data = [NSData dataWithContentsOfFile:filePath[i]];
[self upLoadImageData:data type:@"jpg" name:fileName];
} else if(asset.mediaType == PHAssetMediaTypeVideo) {
fileType = @"mp4";
NSData *data = [NSData dataWithContentsOfFile:filePath[i]];
[self uploadMp4Data:data type:fileType name:fileName];
}
}
});
}
- (void)upLoadImageData:(NSData*)data type:(NSString *)fileType name:(NSString *)fileName{
dataNameMutStr = [NSMutableString stringWithFormat:@"ios_%@_%@.jpg\n", @"图片",fileName];
NSData *dataName = [dataNameMutStr dataUsingEncoding:NSUTF8StringEncoding];
[self sendSocket:dataName data:data];
}
- (void)sendSocket:(NSData *)dataName data:(NSData *)datas{
[self createClientTcpSocket];//发图片
[_asyncsocket writeData:datas withTimeout:-1 tag:0];
}
关注 3 回答 2
gaosboy 收藏了问题 · 2014-09-09
Xcode 6,OSX SDK 10.0,系统是10.9
代码:
-(void)testSearchMusic {
XCTestExpectation *expectation = [self expectationWithDescription:@"searchMusic"];
[musicSDK searchMusicWithKw:@"回家"
block:^(NSArray *list){
XCTAssert(list, @"pass");
[expectation fulfill];
}];
[self waitForExpectationsWithTimeout:10
handler:nil];
}
执行测试用例的时候,提示:
test failure: -[NetEaseMusicSDKTests testSearchMusic] failed: failed: caught "NSInvalidArgumentException", "*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[4]"
求助
test failure: -[NetEaseMusicSDKTests testSearchMusic] failed: failed: caught "NSInvalidArgumentException", "*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[4]"
gaosboy 回答了问题 · 2014-09-03
理论上GET和POST没有本质区别,所以建议用POST做。
另,如果一定要用GET,建议把要传输的数据放在同一个对象里,例如你要传输的内容是:
http://example.com/api?paramA=valueA¶mB=ValueB¶mC=ValueC
则可以先构建要传输的对象(举例用JSON格式,其他格式也无所谓):
{"paramA":"valueA","paramB":"valueB","paramC":"valueC"}
然后对这个对象加密,比如得到密文:
uyUYbJhkIU*^GmklJL(Tu6RJHGHYRhgV$6U%&^%M<HJFHGFjJHGjgj
再做URL Encode,传输:
http://example.com/api?data=uyUYbJhkIU%2A%5EGmklJL%28Tu6RJHGHYRhgVU%25%26%5E%25M%3CHJFHGFjJHGjgj
理论上GET和POST没有本质区别,所以建议用POST做。 另,如果一定要用GET,建议把要传输的数据放在同一个对象里,例如你要传输的内容是: [链接] 则可以先构建要传输的对象(举例用JSON格式,其他格式也无所谓): {"paramA":"valueA","paramB":"valueB","paramC":"va...
关注 1 回答 3
gaosboy 回答了问题 · 2014-09-01
针对你提出的这些问题,我觉得最佳解决方案就是独立于博客文章,做一个附件管理的页面,让作者管理当下他上传过的所有图片,在这个页面列出哪些图片被引用过。
另外,我认为图片地址占用的空间可以忽略不计;图片文件本身不太建议放自己硬盘,又拍云什么的很好。
另外有一个重要原则是,不到万不得已不删除
针对你提出的这些问题,我觉得最佳解决方案就是独立于博客文章,做一个附件管理的页面,让作者管理当下他上传过的所有图片,在这个页面列出哪些图片被引用过。
关注 0 回答 3
gaosboy 赞了回答 · 2014-07-29
ReactiveCocoa不是有几个经典的例子么,当一个界面上的元素有多种依赖的时候,ReactiveCocoa的写法还是很舒服的,比如当两个事件触发以后才会引起一个界面的更新,你就要去写一个逻辑对这两个ID做监测
关注 0 回答 2
gaosboy 赞了回答 · 2014-07-29
消息相对来讲,伸缩性和灵活性比传统的通过抽象ID更好吧。而且,不同界面相关的逻辑可以控制在最小范围内,只要实现对应的observer或者consumer就行了。避免静态对象的共享。而且,不同线程之间数据交换,也不容易出现异常。
消息相对来讲,伸缩性和灵活性比传统的通过抽象ID更好吧。而且,不同界面相关的逻辑可以控制在最小范围内,只要实现对应的observer或者consumer就行了。避免静态对象的共享。而且,不同线程之间数据交换,也不容易出现异常。
关注 0 回答 2
查看全部 个人动态 →
(゚∀゚ )
暂时没有
(゚∀゚ )
暂时没有
注册于 2011-04-27
个人主页被 3.9k 人浏览
推荐关注