我是一个新的BB用户,作为第一个'签入'的一部分,它要求我创建一个新的contributors.txt,其中包含我的名字(我来自Github,但没有这样做).
我正在尝试将一系列文件从iPhone上传到服务器,目的是即使应用程序处于后台或暂停,也会上传这些文件.
我正在使用由它及其系列API 提供的后台传输NSURLSession.
奇怪的是它在两周前完全正常工作.如:
最近几天,我一直在网络模块之外进行一些重构.几天前我再次尝试上传时,只要按下"主页"按钮,上面的步骤(3).当我再次进入应用程序时,文件上传将停止.上传将恢复.
这就好像后台上传甚至不起作用(对于一个文件,更不用说多个文件).
我已多次运行代码,发现它的工作量约为1/50.但其他49次没有.我还检查了以前使用的代码版本(服务器+ iOS),它不再有效 - 或者说,工作很少变化(1/50)
多次完成背景传输和URL会话生命周期的规则,以确保我遵守Apple建议的指导方针,我正在绞尽脑汁想知道什么破坏了,这让人难以理解这是多么不合逻辑 - 我怀疑它是代码实现以外的东西.
所以任何帮助都表示赞赏......
1)在init我的网络类(单例)的方法中,我初始化NSURLSessionConfiguration和NSURLSession:
urlSessionConfigUpload = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:kBACKGROUND_SESSION_CONFIG_ID];
urlSessionConfigUpload.sessionSendsLaunchEvents = YES;
urlSessionConfigUpload.discretionary = YES;
urlSessionConfigUpload.HTTPMaximumConnectionsPerHost = 8;
urlSessionConfigUpload.networkServiceType = NSURLNetworkServiceTypeBackground;
urlSessionConfigUpload.HTTPShouldUsePipelining = NO;
urlSessionConfigUpload.allowsCellularAccess = NO;
urlSession = [NSURLSession sessionWithConfiguration:urlSessionConfigUpload delegate:self delegateQueue:nil];
Run Code Online (Sandbox Code Playgroud)
2)有一种方便的方法叫做实际上传.每个会话只有1个上传任务:
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
[urlRequest setHTTPMethod:@"PUT"];
[urlRequest addValue:@"keep-alive" forHTTPHeaderField:@"Connection"];
[urlRequest addValue:contentType forHTTPHeaderField:@"Content-Type"];
// NB: for upload …Run Code Online (Sandbox Code Playgroud) 实际上,print语句输出到 Celery 终端,而不是运行 python 程序的终端 - 正如 @PatrickAllen 所示
我最近开始使用Celery,但甚至无法进行简单的测试,在等待 30 秒后将一行打印到终端。
在我的tasks.py:
from celery import Celery
celery = Celery(__name__, broker='amqp://guest@localhost//', backend='amqp://guest@localhost//')
@celery.task
def test_message():
print ("schedule task says hello")
Run Code Online (Sandbox Code Playgroud)
在我的包的主模块中,我有:
import tasks.py
if __name__ == '__main__':
<do something>
tasks.test_message.apply_async(countdown=30)
Run Code Online (Sandbox Code Playgroud)
我从终端运行它:
celery -A tasks worker --loglevel=info
Run Code Online (Sandbox Code Playgroud)
任务运行正确,但主程序的终端上没有任何内容。芹菜产量:
[2016-03-06 17:49:46,890: INFO/MainProcess] Received task: tasks.test_message[4282fa1a-8b2f-4fa2-82be-d8f90288b6e2] eta:[2016-03-06 06:50:16.785896+00:00]
[2016-03-06 17:50:17,890: WARNING/Worker-2] schedule task says hello
[2016-03-06 17:50:17,892: WARNING/Worker-2] The client is not currently connected.
[2016-03-06 …Run Code Online (Sandbox Code Playgroud) 所以我有以下代码导致XCode中的运行时错误
NSString* temp = [[param objectforkey@"firstParam"] stringValue];
int tempNum = [[param objectforkey@"secondParam"] intValue];
Run Code Online (Sandbox Code Playgroud)
param从plist加载.firstParam是字符串,secondParam是数字
第一行崩溃了程序.
现在有趣的是,如果我做了一个艰苦的种姓,它是有效的,即:
NSString* temp = (NSString*)[param objectforkey@"firstParam"];
int tempNum = [[param objectforkey@"secondParam"] intValue];
Run Code Online (Sandbox Code Playgroud)
只是想知道为什么id会有不一致的实现,因为我必须使用intValue来转换为int,但是必须进行硬转换以获得NSString?为什么不stringValue?
a, b = b, a + b
Run Code Online (Sandbox Code Playgroud)
我从"使用Python构建技巧"中选择了这种编码风格.来自PHP和Obj-C这种类型的多变量赋值不可用(至少不是我见过的).但对我来说似乎更合乎逻辑.毕竟,为什么我必须在替换之前将'a'分配给'保持变量'.
问题是,这种编码风格是pythonic吗?
这是一个Fibonacci程序示例:
a, b = 1, 2
output = str(a)
while b<=100:
output = output + " " + str(b)
a, b = b, a + b
print output
Run Code Online (Sandbox Code Playgroud)
而且,您发现的最佳方法是什么帮助您编写更多pythonic代码?
我正在实现自己的"后退"按钮.其中onClick,以下代码在ViewController被解雇的(VC)中执行:
navigationStack navigationStack,然后使用它presentViewController
后面的工作是视觉上有效的 - 即当前VC消失,之前VC出现.但是,viewDidLoad不调用该方法.因此,屏幕不会更新数据更新viewDidLoad.
[self dismissCurrentViewController:self completion:^{
[TWStatus dismiss];
FHBaseViewController *vcToDisplay = [[FHDataManager sharedInstance] popNavigationStack];
[vcToDisplay.homeVC presentViewController:vcToDisplay animated:NO completion: ^{ }];
}];
Run Code Online (Sandbox Code Playgroud)
问题:
viewDidLoad在presentViuewController使用时总会被调用?viewDidLoadVC#2中的一个名为ONLY的方法"构建"屏幕.iOS如何在不显示屏幕的情况下显示viewDidLoad?顺便说一下,我没有使用故事板.任何帮助表示赞赏!
这是vim编辑.bash_profile的屏幕。它似乎使用了一些奇怪的突出显示,但我没有明确打开(例如,围绕GaF)
使用nohl并没有帮助,因为我没有启动搜索。我也尝试过使用“关闭语法”功能,但这只是使所有字体/文本颜色变为白色,但是高光仍然存在。
有人知道这是什么,或如何将其关闭?
谢谢
我正在编写一个使用一系列第三方iOS库的项目(例如TWStatus,BSKeyChain),其中一些我已经修改过(最多10%的自定义代码),但不适合原来的GitHub项目.
我考虑过来自图书馆作者的未来更新,今天遇到了CocoaPods,它看起来是一个很好的依赖管理器,与Bundle或Vundle(对于Vim)一样.
我很好奇我的自定义代码是否可能与使用CocoaPods的图书馆作者未来的变化共存?
所以我使用普通的javascript(没有jquery),将文件发送到服务器.服务器脚本PHP在结尾处返回状态代码200,但是javascript正在变为readyState == 2.
PHP代码发送回状态代码200:
header('X-PHP-Response-Code: 200', true, 200);
exit;
Run Code Online (Sandbox Code Playgroud)
javascript正在做:
request.onreadystatechange = function() {
if (request.readyState == 4) {
var message;
switch(request.status) {
case '200':
message = "Data uploaded successfully.";
break;
case '406':
message = "Incorrect file format. Please try again.";
break;
case '410':
message = "Unexpected error. Please contact support.";
break;
default:
break;
}
status_message_container.innerHTML = message;
submit_button.disabled = false;
}
else {
alert( "Unexpected error: " + this.statusText + ".\nPlease try again");
}
};
request.send(formData);
Run Code Online (Sandbox Code Playgroud)
甚至知道HTTP 200状态代码在前端正确返回(我得到'OK').JS脚本正在看readyState==2 …
在使用喜欢的东西编写代理时,我看到了很多代码引用
@property (nonatomic, weak) id<mySuperCoolDelegate> delegate;
Run Code Online (Sandbox Code Playgroud)
通常在哪里id<mySuperCoolDelegate>,是属性的数据类型.所以问题是:
我的理解是否正确,上面的语法告诉编译器数据类型的id是mySuperCoolDelegate?
是否可以使用这种代码(为id指定的数据类型)的任何其他示例?
谢谢!
是否有更多的Pythonic方式来编写以下函数?
def foo():
flag = False
if condition1:
if condition2:
flag = True
return flag
Run Code Online (Sandbox Code Playgroud) ios ×3
objective-c ×3
python ×3
ajax ×1
bitbucket ×1
casting ×1
celery ×1
checkin ×1
cocoapods ×1
coding-style ×1
delegates ×1
if-statement ×1
javascript ×1
nsdictionary ×1
nsstring ×1
php ×1
properties ×1
syntax ×1
viewdidload ×1
vim ×1