标签: appdelegate

当字符串太大时,NSLog在主线程(?)中运行阻塞主线程?

当我的应用程序启动时,我需要将一些剩余数据发送到服务器,所以

applicationDidFinishLaunching
Run Code Online (Sandbox Code Playgroud)

我调用一个方法将一些Core Data实体转换为JSON文本并将其发送到服务器.有时应用程序崩溃是因为:

xxxxxx无法及时发布

我的第一个想法是,我在应用程序启动时正在做某事,这会阻塞主线程,然后我意识到这可能不是问题,因为我使用NSURLConnection发送异步数据,不应该阻塞主线程,经过一些测试,我发现当数据很大时,应用程序更容易崩溃,因为连接是异步的,唯一可疑的代码是当我从Core Data实体创建JSON文本时,我使用NSLog打印它,我试图使用硬编码的大json文件,它总是崩溃,如果我注释掉NSLog线,它不会崩溃.

根据情景,我想知道:

  1. 我在想,NSLog是否在主线程上运行,无论它在哪个线程中被调用?然后我在Apple的文档中找到了:

NSLogv的输出是序列化的,因为进程中只有一个线程可以一次执行上述写入/记录.在下一个线程开始尝试之前,所有写入/记录消息的尝试都已完成.

它是否意味着即使它在非主线程中,但它记录了一些长字符串,这导致主线程被阻塞?

  1. NSLog的字符串大小是否有任何限制(理论上的,实用的)?硬编码的JSON文件为150KB.

非常感谢!

asynchronous objective-c nslog appdelegate

0
推荐指数
1
解决办法
2590
查看次数

跟踪iOS应用程序在后台运行的时间

有没有办法跟踪应用程序在后台的时间量,并在应用程序进入iOS前台时显示相同的内容?

objective-c ios appdelegate

0
推荐指数
1
解决办法
578
查看次数

我什么时候应该使用didFinishLaunchingWithOptions?

我觉得我应该知道这一点,但我没有,而且总是让我困惑.

浏览示例代码和教程时,我有时会看到AppDelegates有一个

@property UIWindow* window,

然后是@synthesized后续跟进

[window setRootViewController:controllerToBeSet]

[window makeKeyAndVisible]

其他应用程序在代理中的任何位置都不会有一行代码.

据我所知,故事板中的友好箭头表示根视图控制器.那么打包的AppDelegates只是针对基于nib的项目吗?

我需要澄清使用didFinishLaunchingWithOptions委托方法的规范以及最初设置视图的方式.

objective-c uiviewcontroller ios appdelegate

0
推荐指数
1
解决办法
239
查看次数

IOS在AppDelegate中访问模态视图

我正在尝试访问AppDelegate.m中的视图.我self.window.rootViewController用来获取对活动ViewController的引用,但是当我创建模态视图时,presentViewController我无法访问新呈现的视图.如何从AppDelegate.m获取对模态视图的引用?

iphone presentmodalviewcontroller ios appdelegate

0
推荐指数
1
解决办法
1311
查看次数

从后台杀死应用程序后,UILocalnotification无法正常工作

我正在使用UIlocalnotifications,所以每当弹出一个通知,并且用户点击它时,我打开ViewController,所以每当我的应用程序处于后台时,当弹出通知,当用户点击它或应用程序图标时,我能够显示ViewController.

但是每当用户从后台杀死应用程序时,当通知发生时,如果他点击通知,我就能够显示ViewController,但是如果我点击应用程序图标,我就无法显示ViewController

以下是我的代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
 UILocalNotification *locationNotification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
    if (locationNotification) {
        // Set icon badge number to zero
        application.applicationIconBadgeNumber = 0;


       AlarmViewController *alarmView = [[AlarmViewController alloc]initWithNibName: @"AlarmViewController" bundle:nil];    
    UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:alarmView];
    [self.window.rootViewController presentViewController:navController animated:YES completion:nil];

    }
}
Run Code Online (Sandbox Code Playgroud)

我试图调试这个问题,我发现的是,每当我点击应用程序图标时,它都没有得到任何本地通知.只有点击通知,我才能获得本地通知.我不知道这是一个错误,或者我是否遗漏了什么.

所以请帮帮我

问候Ranjit.

ios uilocalnotification appdelegate ios7

0
推荐指数
1
解决办法
1390
查看次数

如何在Cocos2d-x中运行场景类类型

Cocos2d中,我用来通过代码获取当前运行的场景:

CCScene *runningScene = [[CCDirector sharedDirector] runningScene];
    if ([runningScene isKindOfClass:[GameScene class]])
Run Code Online (Sandbox Code Playgroud)

有没有类似的方法来获得这个cocos2d-x也???

我在用:

CCScene *scene = (CCScene *)CCDirector::sharedDirector()->getRunningScene();
Run Code Online (Sandbox Code Playgroud)

但如何将其与当前场景进行比较?

cocos2d-x appdelegate

0
推荐指数
1
解决办法
4174
查看次数

didFinishLaunchingwithOptions 在awakeFromNib 之后调用

苹果文档说:

在显示初始视图控制器之前,会调用您的应用程序委托,让您有机会配置视图控制器。

但这实际上并没有发生。

  1. 我在 Xcode 中使用single view template.
  2. ViewController.m我添加awakeFromNib方法和里面我只是NSLog(@"VC").
  3. 然后AppDelegatedidFinishLaunchingwithOptions我只是NSLog(@"AD")
  4. 当我运行项目时,ViewController先执行AppDelegate
  5. 没有故事板didFinishLaunchingwithOptions方法总是首先执行,我能够配置所有 ViewController 可以使用的数据库和其他初始内容,但现在我无法做到这一点。
  6. ViewController.m首先执行,我的数据库设置在didFinishLaunchingWithOptions.

出了什么问题?

objective-c ios uistoryboard appdelegate

0
推荐指数
1
解决办法
938
查看次数

-1
推荐指数
1
解决办法
9008
查看次数

如何在所有类中使用NSString值?

我需要在viewController中捕获数据并在应用程序执行期间保存,您可以在我拥有的任何其他View中使用它,尝试在AppDelegate中创建NSString,如下所示:

AppDelegate.h

property (Retain, nonatomic) NSString * token;
Run Code Online (Sandbox Code Playgroud)

AppDelegate.m

synthesize token;
Run Code Online (Sandbox Code Playgroud)

然后在另一个类中调用它,如下所示

添加包括

#include "AppDelegate"
Run Code Online (Sandbox Code Playgroud)

创建一个对象

AppDelegate * theToken = [[AppDelegate allow] init];

label.text = theToken.token;
Run Code Online (Sandbox Code Playgroud)

但是没有工作,在一些ViewController中出现nill

objective-c ios appdelegate

-1
推荐指数
1
解决办法
103
查看次数

如何从Appdelegate调用另一个ViewController的方法?

从我的appdelegate我需要执行一个来自viewcontroller的方法.

请问,有人能告诉我如何轻松地从appdelegate调用我需要的任何方法吗?

关于这个论点的很多问题但是没有一个是有用/完整/正确的,所以请避免将URL发布到其他主题:我已经检查了所有问题,但我真的找不到关于在Swift中这样做的任何确切答案.:)

uiviewcontroller ios appdelegate swift

-2
推荐指数
1
解决办法
8527
查看次数

从app delegate调用NSObject类方法

我试图从我的AppDelegate调用来自NSObject类的方法.通常,如果从UIViewController调用但在AppDelegate中没有运气,则此方法有效.我的代码:

AppDelegate.m

#import "ACManager.h"

@implementation AppDelegate {
    ACManager *acManager;
}

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[acManager login];
}
Run Code Online (Sandbox Code Playgroud)

ACManager.h

@interface ACManager : NSObject

-(void)login;

@end
Run Code Online (Sandbox Code Playgroud)

ACManager.m

+(ACManager*)sharedInstance {
    static ACManager *sharedInstance;
    @synchronized(self) {
        if (!sharedInstance) {
            sharedInstance = [[self alloc]init];
        }
    }
    return sharedInstance;
}

-(void)login
{
    NSLog(@"login run");
}

@end
Run Code Online (Sandbox Code Playgroud)

任何想法都谢谢你.从应用代表处调用时,有不同的方法吗?

objective-c ios appdelegate

-2
推荐指数
1
解决办法
841
查看次数

InstantiateViewControllerWithIdentifier返回nil

我有授权窗口。当应用启动时,它是好的。我点击登录并转到下一个窗口。但是,当我点击“退出”并想返回到授权窗口时,我得到了零。在方法中,signinView控制器为nil。

在此处输入图片说明

ios appdelegate swift

-3
推荐指数
1
解决办法
1063
查看次数