- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在处理我的一个处于维护阶段的项目,所以我没有太多的自由来一次更改一个主要 block ,在处理这个时,我在模拟器和设备上都看到了这个随机崩溃而应用程序与服务器同步。流动性登录->上传本地数据到服务器->从服务器下载数据。
我能够调试的唯一一点是我附上的屏幕截图,我无法从中得出很多推论。
网络通信是通过自定义类促进的,如下所示
httpClient.h ------
#define TIMEOUT_SEC 30.0
@protocol HttpClientEventHandler_iPhone
@optional
- (void)requestSucceeded;
- (void)requestFailed:(NSError*)error;
@end
@class Reachability;
@interface HttpClient_iPhone : NSObject{
NSURLConnection *connection;
NSMutableData *recievedData;
int statusCode;
id delegate;
Reachability* hostReachable;
BOOL networkChecked;
}
@property (nonatomic, retain) NSMutableString *previousRequest;
@property (readonly) NSMutableData *recievedData; // XX should be (readonly, retain)
@property (readonly) int statusCode;
@property (nonatomic, assign) id delegate;
+ (NSString*)stringEncodedWithBase64:(NSString*)str;
+ (NSString*) stringOfAuthorizationHeaderWithUsername:(NSString*)username password:(NSString*)password;
- (NSMutableURLRequest*)makeRequest:(NSString*)url;
- (NSMutableURLRequest*)makeRequest:(NSString*)url username:(NSString*)username password:(NSString*)password;
- (void)prepareWithRequest:(NSMutableURLRequest*)request;
- (void)requestGET:(NSString*)url;
- (void)requestPOST:(NSString*)url body:(NSString*)body type:(NSString*)type;
- (void)requestGET:(NSString*)url username:(NSString*)username password:(NSString*)password;
- (void)requestPOST:(NSString*)url username:(NSString*)username password:(NSString*)password body:(NSString*)body type:(NSString*)type;
- (void)requestPOST:(NSString*)url username:(NSString*)username password:(NSString*)password bodydata:(NSData*)body contenttype:(NSString*)type;
- (void)uploadImage:(NSString*)requesturl
username:(NSString*)username
password:(NSString*)password
imagename:(NSString*)imagename
contenttype:(NSString*)contenttype
imagedata:(NSData*)imagedata;
- (void)cancelTransaction;
- (void)reset;
- (BOOL)checkNetworkStatus;
@end
//HttpClient.m ----------
#import "HttpClient_iPhone.h"
#import "Base64.h"
#import "Reachability.h"
#import "SyncLiteral.h"
@implementation HttpClient_iPhone
@synthesize recievedData, statusCode;
@synthesize delegate,previousRequest;
- (id)init {
if (self = [super init]) {
[self reset];
delegate = nil;
networkChecked = NO;
}
return self;
}
- (void)dealloc {
[connection release];
[recievedData release];
[super dealloc];
}
- (void)reset {
[recievedData release];
recievedData = [[NSMutableData alloc] init];
[connection release];
connection = nil;
statusCode = 0;
networkChecked = NO;
}
+ (NSString*)stringEncodedWithBase64:(NSString*)str {
static const char *tbl = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
const char *s = [str UTF8String];
int length = [str length];
char *tmp = malloc(length * 4 / 3 + 4);
int i = 0;
int n = 0;
char *p = tmp;
while (i < length) {
n = s[i++];
n *= 256;
if (i < length) n += s[i];
i++;
n *= 256;
if (i < length) n += s[i];
i++;
p[0] = tbl[((n & 0x00fc0000) >> 18)];
p[1] = tbl[((n & 0x0003f000) >> 12)];
p[2] = tbl[((n & 0x00000fc0) >> 6)];
p[3] = tbl[((n & 0x0000003f) >> 0)];
if (i > length) p[3] = '=';
if (i > length + 1) p[2] = '=';
p += 4;
}
*p = '\0';
NSString *ret = [NSString stringWithCString:(const char*)tmp encoding: NSUTF8StringEncoding];
free(tmp);
return ret;
}
#pragma mark - HTTP Request creating methods
- (NSMutableURLRequest*)makeRequest:(NSString*)url {
NSString *encodedUrl = (NSString*)CFURLCreateStringByAddingPercentEscapes(
NULL, (CFStringRef)url, NULL, NULL, kCFStringEncodingUTF8);
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:encodedUrl]];
[request setCachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData];
[request setTimeoutInterval:TIMEOUT_SEC];
[request setHTTPShouldHandleCookies:FALSE];
[encodedUrl release];
return request;
}
- (NSMutableURLRequest*)makeRequest:(NSString*)url username:(NSString*)username password:(NSString*)password {
NSMutableURLRequest *request = [self makeRequest:url];
[request setValue:[HttpClient_iPhone stringOfAuthorizationHeaderWithUsername:username password:password]
forHTTPHeaderField:@"Authorization"];
return request;
}
+ (NSString*) stringOfAuthorizationHeaderWithUsername:(NSString*)username password:(NSString*)password {
return [@"Basic " stringByAppendingString:[HttpClient_iPhone stringEncodedWithBase64:
[NSString stringWithFormat:@"%@:%@", username, password]]];
}
- (void)prepareWithRequest:(NSMutableURLRequest*)request {
// do nothing (for OAuthHttpClient)
}
#pragma mark -
#pragma mark HTTP Transaction management methods
/* Sending the Http Request for "GET" */
- (void)requestGET:(NSString*)url {
//Reseting the http client
[self reset];
//Checking the internet connection
if ([self checkNetworkStatus] == NO){
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(requestFailed:)]){
[self.delegate performSelector:@selector(requestFailed:) withObject:nil];
}
return;
}
//Sending the http requqest
NSMutableURLRequest *request = [self makeRequest:url];
[self prepareWithRequest:request];
if(![[url lastPathComponent] isEqualToString:@"pda_errorlogs"])
self.previousRequest = [NSMutableString string];
[self.previousRequest appendFormat:@"GET Requested API - %@\n",url];
[self.previousRequest appendFormat:@"\n\n\n"];
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
}
/* Sending the Http Request for "POST" */
- (void)requestPOST:(NSString*)url body:(NSString*)body type:(NSString*)type {
//Reseting the http client
[self reset];
//Checking the internet connection
if ([self checkNetworkStatus] == NO){
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(requestFailed:)]){
[self.delegate performSelector:@selector(requestFailed:) withObject:nil];
}
return;
}
//Sending the http requqest
NSMutableURLRequest *request = [self makeRequest:url];
[request setHTTPMethod:@"POST"];
if (type != nil && ![type isEqualToString:@""])
[request setValue:type forHTTPHeaderField:@"Content-Type"];
if (body) {
[request setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding]];
}
[self prepareWithRequest:request];
if(![[url lastPathComponent] isEqualToString:@"pda_errorlogs"])
self.previousRequest = [NSMutableString string];
[self.previousRequest appendFormat:@"Post Requested API - %@\n",url];
[self.previousRequest appendFormat:@"Post Data - %@\n",body];
[self.previousRequest appendFormat:@"\n\n\n"];
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
}
/* Sending the Http Request for "GET" with username and password */
- (void)requestGET:(NSString*)url username:(NSString*)username password:(NSString*)password {
//Reseting the http client
[self reset];
//Checking the internet connection
if ([self checkNetworkStatus] == NO){
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(requestFailed:)]){
[self.delegate performSelector:@selector(requestFailed:) withObject:nil];
}
return;
}
//Sending the http requqest
NSMutableURLRequest *request = [self makeRequest:url username:username password:password];
if(![[url lastPathComponent] isEqualToString:@"pda_errorlogs"])
self.previousRequest = [NSMutableString string];
[self.previousRequest appendFormat:@"Post Requested API - %@\n",url];
[self.previousRequest appendFormat:@"Authorization user - %@\n",username];
[self.previousRequest appendFormat:@"Authorizating password - %@\n",password];
[self.previousRequest appendFormat:@"\n\n\n"];
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
}
/* Sending the Http Request for "POST" with username and password */
- (void)requestPOST:(NSString*)url username:(NSString*)username password:(NSString*)password body:(NSString*)body type:(NSString*)type {
//Reseting the http client
[self reset];
//Checking the internet connection
if ([self checkNetworkStatus] == NO){
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(requestFailed:)]){
[self.delegate performSelector:@selector(requestFailed:) withObject:nil];
}
return;
}
//Sending the http requqest
NSMutableURLRequest *request = [self makeRequest:url username:username password:password];
[request setHTTPMethod:@"POST"];
if (type != nil && ![type isEqualToString:@""])
[request setValue:type forHTTPHeaderField:@"Content-Type"];
if (body) {
[request setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding]];
}
[self prepareWithRequest:request];
if(![[url lastPathComponent] isEqualToString:@"pda_errorlogs"])
self.previousRequest = [NSMutableString string];
[self.previousRequest appendFormat:@"Post Requested API - %@\n",url];
[self.previousRequest appendFormat:@"Authorization user - %@\n",username];
[self.previousRequest appendFormat:@"Authorizating password - %@\n",password];
[self.previousRequest appendFormat:@"Post Data - %@\n",body];
[self.previousRequest appendFormat:@"\n\n\n"];
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
}
/* Sending the Http Request for "POST" with username and password */
- (void)requestPOST:(NSString*)url username:(NSString*)username password:(NSString*)password bodydata:(NSData*)body contenttype:(NSString*)type {
//Reseting the http client
[self reset];
//Checking the internet connection
if ([self checkNetworkStatus] == NO){
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(requestFailed:)]){
[self.delegate performSelector:@selector(requestFailed:) withObject:nil];
}
return;
}
//Sending the http requqest
NSMutableURLRequest *request = [self makeRequest:url username:username password:password];
[request setHTTPMethod:@"POST"];
if (type != nil && ![type isEqualToString:@""])
[request setValue:type forHTTPHeaderField:@"Content-Type"];
if (body) {
[request setHTTPBody:body];
}
if (body != nil && [body length] > 0){
NSString* length_str = [NSString stringWithFormat:@"%d", [body length]];
[request setValue:length_str forHTTPHeaderField:@"Content-Length"];
}
[self prepareWithRequest:request];
if(![[url lastPathComponent] isEqualToString:@"pda_errorlogs"])
self.previousRequest = [NSMutableString string];
[self.previousRequest appendFormat:@"Post Requested API - %@\n",url];
[self.previousRequest appendFormat:@"Authorization user - %@\n",username];
[self.previousRequest appendFormat:@"Authorizating password - %@\n",password];
[self.previousRequest appendFormat:@"Post Data - %@\n",[[[NSString alloc] initWithData:body encoding:NSUTF8StringEncoding]autorelease]];
[self.previousRequest appendFormat:@"\n\n\n"];
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
}
/* Sending the Http Request for uploading the image from database */
- (void)uploadImage:(NSString*)requesturl
username:(NSString*)username
password:(NSString*)password
imagename:(NSString*)imagename
contenttype:(NSString*)contenttype
imagedata:(NSData*)imagedata {
//Reseting the http client
[self reset];
//Checking the internet connection
if ([self checkNetworkStatus] == NO){
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(requestFailed:)]){
[self.delegate performSelector:@selector(requestFailed:) withObject:nil];
}
return;
}
//Sending the http requqest
NSString *boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
NSURL *url = [NSURL URLWithString:requesturl];
NSMutableURLRequest *request = [self makeRequest:requesturl username:username password:password];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];
NSMutableData *postbody = [NSMutableData data];
[postbody appendData:[[NSString stringWithFormat:@"--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[postbody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"uploadfile\"; filename=\"%@\"\r\n", imagename] dataUsingEncoding:NSUTF8StringEncoding]];
[postbody appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
NSData* encoded_data = [Base64 encode:imagedata];
[postbody appendData:[NSData dataWithData:encoded_data]];
[postbody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setURL:url];
[request setHTTPMethod:@"POST"];
[encoded_data release];
[request setHTTPBody:postbody];
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
}
/* Canceling the HTTP Transaction */
- (void)cancelTransaction {
[connection cancel];
[self reset];
}
#pragma mark -
#pragma mark NSURLConnectionDelegate methods
- (NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse {
return nil;
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
statusCode = [(NSHTTPURLResponse*)response statusCode];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[recievedData appendData:data];
#ifdef _DEBUG
NSLog(@"Receieved the http body data : \n%@\n", [[[NSString alloc] initWithData:data
encoding:NSASCIIStringEncoding] autorelease]);
#endif
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
#ifdef DEBUG
NSLog(@"Receieved the http body data : \n%@\n", [[[NSString alloc] initWithData:recievedData
encoding:NSASCIIStringEncoding] autorelease]);
#endif
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(requestSucceeded)]){
[self.delegate performSelector:@selector(requestSucceeded) withObject:nil];
}
[self reset];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError*) error {
#ifdef _DEBUG
NSLog(@"didFailWithError \n %@",[error description]);
#endif
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(requestFailed:)]){
[self.delegate performSelector:@selector(requestFailed:) withObject:error];
}
[self reset];
}
//check network status chages
- (BOOL)checkNetworkStatus {
BOOL result = NO;
Reachability* reachability = [Reachability reachabilityWithHostName:SERVER_ADDRESS];
NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];
if(remoteHostStatus == NotReachable) {
#ifdef _DEBUG
NSLog(@"\nNetwork Status : not reachable\n");
#endif
result = NO;
}else if (remoteHostStatus == ReachableViaWWAN) {
#ifdef _DEBUG
NSLog(@"\nNetwork Status : reachable via wwan\n");
#endif
result = YES;
}else if (remoteHostStatus == ReachableViaWiFi) {
#ifdef _DEBUG
NSLog(@"\nNetwork Status : reachable via wifi\n");
#endif
result = YES;
}
return result;
}
@结束
如果有人能指导我正确的方向,那将有很大帮助。该项目使用 SDK 6.1 和部署目标 4.3。
//编辑我的问题
目前实现如下
@interface HttpClient_iPhone : NSObject{
NSURLConnection *connection;
NSMutableData *recievedData;
int statusCode;
id delegate;
Reachability* hostReachable;
BOOL networkChecked;
}
@property (retain,atomic) NSMutableString *previousRequest;
@property (retain,readonly) NSMutableData *recievedData;
@property (readonly) int statusCode;
@property (nonatomic, assign) id delegate;
现在对应的.m是
@implementation HttpClient_iPhone
@synthesize recievedData, statusCode;
@synthesize delegate,previousRequest;
- (id)init {
if (self = [super init]) {
[self reset];
delegate = nil;
networkChecked = NO;
}
return self;
}
- (void)dealloc {
if (connection) {
[connection cancel];
}
[connection release];
connection = nil;
if (recievedData) {
[recievedData release];
recievedData = nil;
}
[super dealloc];
}
- (void)reset {
if (recievedData) {
[recievedData release];
recievedData = nil;
}
recievedData = [[NSMutableData alloc] init];
if (connection) {
[connection cancel];
[connection release];
connection = nil;
}
statusCode = 0;
networkChecked = NO;
}
- (void)requestGET:(NSString*)url {
//Reseting the http client
[self reset];
//Checking the internet connection
if ([self checkNetworkStatus] == NO){
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(requestFailed:)]){
[self.delegate performSelector:@selector(requestFailed:) withObject:nil];
}
return;
}
NSMutableURLRequest *request = [self makeRequest:url];
[self prepareWithRequest:request];
if(![[url lastPathComponent] isEqualToString:@"pda_errorlogs"])
self.previousRequest = [NSMutableString string];
[self.previousRequest appendFormat:@"GET Requested API - %@\n",url];
[self.previousRequest appendFormat:@"\n\n\n"];
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
}
- (void)requestPOST:(NSString*)url body:(NSString*)body type:(NSString*)type {
[self reset];
if ([self checkNetworkStatus] == NO){
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(requestFailed:)]){
[self.delegate performSelector:@selector(requestFailed:) withObject:nil];
}
return;
}
NSMutableURLRequest *request = [self makeRequest:url];
[request setHTTPMethod:@"POST"];
if (type != nil && ![type isEqualToString:@""])
[request setValue:type forHTTPHeaderField:@"Content-Type"];
if (body) {
[request setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding]];
}
[self prepareWithRequest:request];
if(![[url lastPathComponent] isEqualToString:@"pda_errorlogs"])
self.previousRequest = [NSMutableString string];
[self.previousRequest appendFormat:@"Post Requested API - %@\n",url];
[self.previousRequest appendFormat:@"Post Data - %@\n",body];
[self.previousRequest appendFormat:@"\n\n\n"];
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
}
- (void)requestGET:(NSString*)url username:(NSString*)username password:(NSString*)password {
[self reset];
if ([self checkNetworkStatus] == NO){
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(requestFailed:)]){
[self.delegate performSelector:@selector(requestFailed:) withObject:nil];
}
return;
}
NSMutableURLRequest *request = [self makeRequest:url username:username password:password];
if(![[url lastPathComponent] isEqualToString:@"pda_errorlogs"])
self.previousRequest = [NSMutableString string];
[self.previousRequest appendFormat:@"Post Requested API - %@\n",url];
[self.previousRequest appendFormat:@"Authorization user - %@\n",username];
[self.previousRequest appendFormat:@"Authorizating password - %@\n",password];
[self.previousRequest appendFormat:@"\n\n\n"];
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
}
- (void)requestPOST:(NSString*)url username:(NSString*)username password:(NSString*)password body:(NSString*)body type:(NSString*)type {
[self reset];
if ([self checkNetworkStatus] == NO){
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(requestFailed:)]){
[self.delegate performSelector:@selector(requestFailed:) withObject:nil];
}
return;
}
NSMutableURLRequest *request = [self makeRequest:url username:username password:password];
[request setHTTPMethod:@"POST"];
if (type != nil && ![type isEqualToString:@""])
[request setValue:type forHTTPHeaderField:@"Content-Type"];
if (body) {
[request setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding]];
}
[self prepareWithRequest:request];
if(![[url lastPathComponent] isEqualToString:@"pda_errorlogs"])
self.previousRequest = [NSMutableString string];
[self.previousRequest appendFormat:@"Post Requested API - %@\n",url];
[self.previousRequest appendFormat:@"Authorization user - %@\n",username];
[self.previousRequest appendFormat:@"Authorizating password - %@\n",password];
[self.previousRequest appendFormat:@"Post Data - %@\n",body];
[self.previousRequest appendFormat:@"\n\n\n"];
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
}
- (void)requestPOST:(NSString*)url username:(NSString*)username password:(NSString*)password bodydata:(NSData*)body contenttype:(NSString*)type {
[self reset];
}
- (void)cancelTransaction {
[self reset];
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
statusCode = [(NSHTTPURLResponse*)response statusCode];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[recievedData appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(requestSucceeded)]){
[self.delegate performSelector:@selector(requestSucceeded) withObject:nil];
}
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError*) error {
if (self.delegate != nil && [self.delegate respondsToSelector:@selector(requestFailed:)]){
[self.delegate performSelector:@selector(requestFailed:) withObject:error];
}
}
//Crashlytics 上报告的崩溃日志图像
第 1 部分,共 2 部分
第 2 部分,共 2 部分
最佳答案
两条评论:
1) 将 header 中的 recievedData 属性类型更改为“保留”(即使它没有用作代码中的属性)
2) 在你释放一个NSURLConnection之前,你应该给它发送cancel
,即[connection cancel]
。您在 dealloc 和 reset 中释放它。此外,在您做的第一件事中取消它 - 不要事先释放它可能使用的数据。
编辑:根据您当前的代码,您的 reset
方法在修改可变数据之前仍然会取消。我修改了您的代码,如下所示,以反射(reflect)您的 dealloc
方法(您不需要 nil 语句):
- (void)reset {
if (connection) {
[connection cancel];
[connection release];
connection = nil;
}
if (recievedData) {
[recievedData release];
recievedData = nil;
}
recievedData = [[NSMutableData alloc] init];
statusCode = 0;
networkChecked = NO;
}
- (void)dealloc {
if (connection) {
[connection cancel];
[connection release];
}
if (recievedData) {
[recievedData release];
}
[super dealloc];
}
试试吧。
关于iphone - 为什么我在网络通信期间遇到随机崩溃 -(在 CFRelease 中崩溃)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16602738/
我有一段代码看起来像这样: void update_clock(uint8_t *time_array) { time_t time = *((time_t *) &time_array[0]
应用程序崩溃了 :( 请帮助我.. 在这方面失败了。我找不到错误?该应用程序可以连接到 iTunesConnect 但它会出错。 谁能根据下面的崩溃报告判断问题出在哪里? share_with_app
小二是新来的实习生,作为技术 leader,我给他安排了一个非常简单的练手任务,把前端 markdown 编辑器里上传的图片保存到服务器端,结果他真的就把图片直接保存到了服务器上,这下可把我气坏了,就
我正在创建一个函数,它将目录路径作为参数传递,或者如果它留空,则提示用户输入。 我已经设置了我的 PATH_MAX=100 和 if 语句来检查 if ((strlen(folder path) +
我已将“arial.ttf”文件(从我的/Windows/Fonts 文件夹中获取)加载到内存中,但是将其传递到 FT_New_Memory_Face 时会崩溃(在 FT_Open_Face 中的某处
我正在尝试在我的计算机上的两个控制台之间进行 rtsp 流。 在控制台 1 上,我有: ffmpeg -rtbufsize 100M -re -f dshow -s 320x240 -i video=
我正在尝试使用 scio_beast在一个项目中。我知道它还没有完成,但这并不重要。我已经设法让它工作得很好。 我现在正在尝试连接到 CloudFlare 后面的服务器,我知道我需要 SNI 才能工作
我有一个带有关联宏的下拉列表,如下所示: Sub Drop() If Range("Hidden1!A1") = "1" Then Sheets("Sheet1").Se
我对 bash 很陌生。我要做的就是运行这个nvvp -vm /usr/lib64/jvm/jre-1.8.0/bin/java无需记住最后的路径。我认为 instafix 就是这样做...... n
我在 Windows 上使用 XAMPP 已经两年左右了,它运行完美,没有崩溃没有问题。 (直到四个月前。) 大约四个月前,我们将服务器/系统升级到了更快的规范。 这是旧规范的内容 - Windows
我面临着一个非常烦人的 android 崩溃,它发生在大约 1% 的 PRODUCTION session 中,应用程序始终在后台运行。 Fatal Exception: android.app.Re
尝试使用下面的函数: public void createObjectType() { try { mCloudDB.createObjectType(ObjectTypeIn
由于我正在进行的一个项目,我在 CF11 管理员中弄乱了类路径,我设法使服务器崩溃,以至于我唯一得到的是一个漂亮的蓝屏和 500 错误.我已经检查了日志,我会把我能做的贴在帖子的底部,但我希望有人会启
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 10 个月前关闭。 Improve
我最近从 xcode 3.x 更新到 4.2,当我在 4.2 中运行应用程序时,我遇到了核心数据问题。我还更新到了 iOS 5,所以问题可能就在那里,我不太确定。 这些应用程序在 3.x 中运行良好,
我是一个相对较新的 iPhone 应用程序开发人员,所以我的知识有点粗略,所以如果这是一个微不足道的问题,请原谅我。 我有一个导航应用程序,它通过在navigationController对象上调用p
if ([MFMailComposeViewController canSendMail]) { MFMailComposeViewController *mailViewController
你能帮我吗? 我正在设置 UILocalNotification,当我尝试设置其 userInfo 字典时,它崩溃了。 fetchedObjects 包含 88 个对象。 这是代码: NSDi
为什么我的代码中突然出现 NSFastEnumeration Mutation Handler 崩溃。我很茫然为什么会突然出现这个崩溃以及如何解决它。 最佳答案 崩溃错误: **** 由于未捕获的异常
当我从表中删除行时,我的应用程序崩溃了。这是我检测到错误和堆栈跟踪的来源。谢谢! //delete row from database - (void)tableView:(UITableView *
我是一名优秀的程序员,十分优秀!