标签: uiapplication

NSApplication与UIApplication

UIApplication和之间的区别是什么NSApplication?(因为我没有从他们的文档中得到它...)
有人能给我一些有用的链接来详细解释他们的差异吗?
此外,AppNameAppDelegate.m(和.h)在iOS应用程序中的关键作用是什么?
谢谢.

uiapplication nsapplication ios

4
推荐指数
1
解决办法
2254
查看次数

设置setStatusBarHidden:在iOS v5应用程序中.还有一个空白区域.这是解决问题的正确方法吗?

我想在我的iOS v5通用应用程序中切换statusBar.

但发现其他人有UIViews(在我的情况下,subViews添加到主视图)只回收隐藏statusBar剩下的20px,如果你然后旋转设备(我使用模拟器)

我的观点是以编程方式完成的.

我尝试了通过谷歌搜索找到的一些建议,但似乎没有任何工作.即更改autoresizing/mask,wantsFullScreenLayout,setNeedsLayout,在IB'使用全屏.

我终于意识到我将视图框架高度设置 为0,它的高度[[UIScreen mainScreen] applicationFrame] size.height的高度.

我想出的是:将视图框架高度设置 为-20,并将其高度限制[[UIScreen mainScreen] applicationFrame] size.height + 20

在viewDidLoad中.

CGRect theDeviceRect= [[UIScreen mainScreen] applicationFrame];
newMap.frame = CGRectMake(0, -20, theDeviceRect.size.width, theDeviceRect.size.height+20);
Run Code Online (Sandbox Code Playgroud)

我也在willAnimateRotationToInterfaceOrientation: delegate中有这个.

现在当我切换状态栏时:

- (void) toggleStatusBarAction:(id)sender{
  BOOL istathidden=  [[UIApplication sharedApplication] isStatusBarHidden];

   [[UIApplication sharedApplication] setStatusBarHidden:!istathidden withAnimation:UIStatusBarAnimationFade];
    }
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作.但是我想看看我的解决方案是好坏的方式,如果我遗失了什么?:

提前谢谢了.MH

objective-c uiview uiapplication ios

4
推荐指数
1
解决办法
2675
查看次数

使用Swift UIApplication子类的Objective-C项目.错误:未加载类

我有一个用Objective-C编写的项目,我刚刚使用Swift添加了一个UIApplication子类:( RMFApplication.swift在帖子末尾实现).但是,我收到此错误:

由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无法实例化UIApplication子类实例.没有加载名为RMFApplication的类.

  • 在我的info.plist中,我在NSPrincipalClass下正确指定了名称,并仔细检查了它.
  • 我读了这个答案然后看了我自己main.m说的:return UIApplicationMain(argc, argv, nil, NSStringFromClass([RMFAppDelegate class]));.
  • 文档UIApplicationMain说if if nil被指定为thrid值然后UIApplication被假设,但为什么我的错误消息包含我的自定义类名?我必须假设nil它将读取info.plist值.

注意:子类化UIApplication适用于RMFApplication.hRMFApplication.m.唯一改变的是重命名这些文件和添加一个RMFApplication.swift文件,它编译时没有任何警告:

import UIKit

class RMFApplication: UIApplication {

    override func openURL(url: NSURL) -> Bool
    {
        println(url.description)
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以继续使用Objective-C,但我想尝试迁移到Swift,除非两者真的不能很好地结合在一起.

objective-c uiapplication ios swift

4
推荐指数
1
解决办法
755
查看次数

此应用程序不允许查询方案 XYZ://

您可能认为这是一个重复的问题,但事实并非如此,我完全了解 SO 关于canOpenURLiOS 9 及其警告的所有答案,但这是我的问题:

我正在尝试检查我的设备上是否安装了特定的应用程序(均由我开发)。我已宣布该计划AppA为:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>com.my.company.id</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>XYZ</string>
        </array>
    </dict>
</array>
Run Code Online (Sandbox Code Playgroud)

在另一个应用程序上,AppB我在 info.plist 中添加了:

<key>LSApplicationQueriesSchemes</key>
<array>
 <string>XYZ</string>
</array> 
Run Code Online (Sandbox Code Playgroud)

现在,AppB我试图找出我是否AppA安装了这样的:

     internal static let appAScheme = "XYZ://"

 static func  AppAInstalled() -> Bool {

    let appAURL = NSURL(string: appAScheme)

    return UIApplication.sharedApplication().canOpenURL(appAURL!)


}
Run Code Online (Sandbox Code Playgroud)

它总是返回

-canOpenURL:URL 失败:“XYZ://” - 错误:“此应用程序不允许查询方案 XYZ”

但是,如果我尝试AppAAppB它打开它,它将毫无问题地工作!

// Works alright
UIApplication.sharedApplication().openURL(appAURL!)
Run Code Online (Sandbox Code Playgroud)

我想不通为什么!

uiapplication custom-url swift ios9 xcode7.2

4
推荐指数
1
解决办法
3908
查看次数

UIApplication beginBackgroundTaskWithExpirationHandler问题

伙计:)我有一个iOS闹钟应用程序,如果应用程序进入后台,它使用UILocalNotification-s来安排用户定义的警报.由于这(在我的实现中)可能是一个相对较长的过程,我需要确保在应用程序变为非活动状态之前完成通知的注册.我读到UIApplication中有一个方法:beginBackgroundTaskWithExpirationHandler,它要求iOS有更多时间,以便它可以完成任务,但我不知道如何使用它.这些(void(^)(void))参数吓到我:).我知道问题太多了,但是......如果我有一个方法[self registerLocalNotifications],它会注册所有本地通知,请指点我如何确保该方法在应用程序进入后台之前完成.非常感谢!

iphone uiapplication uilocalnotification

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

UIApplication openURL:在打开之前检查应用程序?

iOS最近有变化吗?我以前能够打电话给以下人员:

BOOL twitter = [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"twitter://user?screen_name=username"]];
if (twitter) {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"twitter://user?screen_name=username"]];
} else {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.twitter.com/username"]];
}
Run Code Online (Sandbox Code Playgroud)

这样做基本上是检查设备是否响应URL(如果安装了应用程序)并打开应用程序(如果已安装),否则执行 else

当我在我的设备(iPhone 4,4.3.2)上进行测试时,它会在创建BOOL时打开Twitter应用程序.

谢谢

nsurl url-scheme uiapplication

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

了解applicationSignificantTimeChange:

我发现有时候我的应用程序(Cocos2d游戏)在经过一段时间的重大改变之后就会以"越野车"的方式进行.例如:

  • 案例1:当应用程序进入后台时,几分钟后,我重新启动它,我可以看到加载图像,然后应用程序/游戏恢复.
  • 案例2:当应用程序进入后台并在很长时间后更改时,应用程序有时会重新启动,有时不会.我仍然不清楚为什么.

看看我发现的AppDelegate方法:

// next delta time will be zero
-(void) applicationSignificantTimeChange:(UIApplication *)application
{
    [[CCDirector sharedDirector] setNextDeltaTimeZero:YES];
}
Run Code Online (Sandbox Code Playgroud)

我想知道,因为这影响了导演和导演影响了动画,这个电话和案例1和案例2之间是否有链接?

objective-c cocos2d-iphone uiapplication ios

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

Objective-C iPhone - 立即在Safari中打开URL并退出应用程序

我可以使用以下命令在Safari中打开URL:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"www.myurl.com"]];
Run Code Online (Sandbox Code Playgroud)

它工作正常,但在模拟器中需要10秒以上.我已经尝试将此代码放在app delegate的didFinishLauchingWithOptions方法或我的视图控制器的viewDidLoad方法中,但它仍然需要10秒以上才能加载.在突然打开Safari之前,我在整个持续时间内都没有任何内容的黑屏.有什么办法可以减少加载时间吗?这只是一个模拟器错误?我仍然试图让我的设备注册在实际设备上进行测试.

有趣的是,当我将它添加到UIButton的动作方法时,应用程序立即加载,但用户必须点击UIButton才能在Safari中启动URL.

我的目标是有一个应用程序,在启动时,立即启动safari中的硬编码URL.该应用程序应立即退出,以便当用户点击应用程序图标时,它将能够再次执行此操作.有什么建议?

以下是我在ViewController.m中尝试过的一段内容,如果你想自己尝试一下,它有10秒黑屏:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"www.myurl.com"]];
    exit(0);
}
Run Code Online (Sandbox Code Playgroud)

safari objective-c uiapplication ios

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

推送通知更改AppIcon的徽章

我正在开发一个可以接收的应用程序Push-Notifications.收到通知后,我需要更改图标徽章的编号并增加它.这些通知存储UITableView在我的应用程序中.当按下一行时,这意味着已经读取了通知,所以我想减少徽章.我是新手推送通知和徽章,我真的找不到任何有效的方法来做到这一点

任何解决方案

谢谢.

objective-c push-notification uiapplication ios

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

openURL并在IOS 9/10中打开

-UIApplication.shared.openURL(url)
-UIApplicartion.shared.open(url,options: [:],completionHandler: nil)
Run Code Online (Sandbox Code Playgroud)

我可以在iOS9和iOS10中使用这两个选项吗?

UIApplication.shared.openURL(url)iOS9和/或iOS10 是否受支持?

uiapplication ios swift ios9 ios10

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