当我双击主页按钮并从多任务栏退出我的应用程序并再次打开应用程序时,Xcode读取:"线程1:程序收到信号:SIGKILL"并冻结我的iPod.该应用程序有1500多行,所以我无法真正放任何代码,抱歉.我能做错什么?
在我的网页浏览器,我试图加载UIWebView与NSData从获得的NSURLConnection.当我尝试将其加载到UIWebView而不是网站时,它会提供HTML纯文本.
这是我的代码:
在 viewDidLoad:
NSURLRequest *request = [NSURLRequest requestWithURL: [NSURL URLWithString:@"http://www.msn.com"]];
[NSURLConnection connectionWithRequest: request delegate:self];
Run Code Online (Sandbox Code Playgroud)
稍后在代码中:
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
webdata = [NSMutableData dataWithData: data];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
[webview loadData:webdata MIMEType: @"text/html" textEncodingName: @"UTF-8" baseURL:nil];
}
Run Code Online (Sandbox Code Playgroud)

整个代码块包含以下内容:
CGSize layerSize = [webview sizeThatFits:CGSizeZero];
if ([UIScreen instancesRespondToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2.0f) {
UIGraphicsBeginImageContextWithOptions(layerSize, NO, 2.0f);
}
else {
UIGraphicsBeginImageContext(layerSize);
}
[webview.layer renderInContext:UIGraphicsGetCurrentContext()];
screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)
但经过测试,这条线是导致问题的那条线:
[webview.layer renderInContext:UIGraphicsGetCurrentContext()];
Run Code Online (Sandbox Code Playgroud)
应用程序崩溃,没有在控制台中列出任何原因,使用@try @catch @finally没有任何结果.我在AppDelegate.h中导入了Quartzcore,如果它与它有任何关系.该应用程序在模拟器中运行良好,但在真实设备上运行时崩溃.
我需要运行一些依赖于用户决策的验证(例如,如果批准购买超过支出限制),并且如果失败则拒绝"完成"操作.
然而,看起来像是不可能有一个真正的模态动作,如与其他语言(如showmessage,alert()等),一切都是由代表.
但后来我不知道该怎么办.如果用户按下"完成"按钮,程序会询问"你确定吗?" 他说"取消"流程继续,视图被推回!
如何在可可世界解决这个问题?
在我过去的所有iOS游戏中,我将游戏设置为一个简单的基于视图的应用程序,其中包含一个视图控制器,.h文件和.m文件.我设置了一个NSTimer每秒30,40或60帧的集合,称为主运行循环.后来进入开发阶段,我将图形更新(更高的FPS)和游戏计算(更低的FPS)分开以减少滞后.我从未理解如何在游戏中实现多线程/并发,因为图形和计算彼此依赖...
鉴于我从未有机会阅读"真实"游戏的源代码,我是以合理的方式设置它,还是我对游戏的主框架采取了完全错误的方法并运行循环?
我问这个是因为我注意到我的应用程序与App Store上的其他应用程序相比有很多延迟(例如,我的应用程序在iPhone 3G上可怕地落后,但是Doodle Jump,Fruit Ninja,Cut the Rope等运行相对顺利).
我有一个UIScrollView加载了UIImageView,以便用户可以放大,然后根据需要滚动.但是,如果图像大于屏幕,则滚动不会执行任何操作,直到用户捏缩放(即使只有一个像素).例如,图像可能是320 x 600,所以他们看到一个320 x 480的部分,但是必须滚动才能看到其余部分.但是,滚动直到放大或缩小才会起作用.有什么方法可以避免这种情况吗?
我有一个应用程序设置,我将NSString转换为char变量数组,我试图将一些字符转换为整数(基本上解析字符串中的数字).但是当我尝试将它们转换为int变量时,它们会突然改变值.
例如:
char thechar = array[7]; //to make sure the issue isn't related to the array
NSLog(@"%c %i %i",thechar,(int) thechar, [[NSNumber numberWithUnsignedChar:thechar] intValue]);
Run Code Online (Sandbox Code Playgroud)
返回:
3 51 51
Run Code Online (Sandbox Code Playgroud)
转换它的两种方法(我发现)似乎都将值更改为51.有谁知道可能会发生什么?
就像其他开发者一样,我希望用户在应用商店中查看我的应用.但是,根据我的个人经验,当应用程序要求我审核但我没有Wi-Fi时,这非常烦人.有没有办法告诉你什么时候有互联网连接(没有离开应用程序),以便我可以让它只在他们有Wi-Fi/3G时询问他们?
我正在制作一款基于NSTimer的游戏,以40 fps的速度调用主循环,当我运行它时,即使在最新的iPod touch上,它仍然会滞后一个明显的数量.是否可以使用多线程来减少滞后而不降低帧速率,或者多线程是否只是为了在执行复杂计算时保持ui响应?如果它可以使用,你能指点我一个如何实现它的教程吗?
iphone ×9
ios ×8
objective-c ×3
calayer ×1
char ×1
cocoa-touch ×1
html ×1
installation ×1
int ×1
lag ×1
performance ×1
quartz-core ×1
scroll ×1
sigkill ×1
uiscrollview ×1
uiwebview ×1
zoom ×1