小编Ash*_*hok的帖子

在applicationDidEnterBackground之前显示视图或启动画面(以避免活动视图截图)

我的应用程序中有保密信息,所以当应用程序即将移动到后台时,我想用启动画面隐藏它们.

我在iOS6上运行应用程序.

我试图显示视图,applicationWillResignActive但问题是它显示启动屏幕,即使用户滑动控制面板,例如.我希望它只在应用程序移动到后台时显示.

我尝试显示我的splashScreen,applicationDidEnterBackground但它需要screenShot才能在动画期间恢复时显示信息.

这就是我想要的精神:

- (void)applicationDidEnterBackground:(UIApplication *)application {
    [_window addSubview:__splashController.view];
}
Run Code Online (Sandbox Code Playgroud)

screenshot background uiapplicationdelegate ios ios7

32
推荐指数
2
解决办法
2万
查看次数

Mac键盘快捷方式无法在iOS模拟器上运行

所有的Mac键盘快捷键如Cmd + Q(退出模拟器应用程序),Cmd + K(在模拟器中切换键盘隐藏/显示)等已经停止了iOS模拟器应用程序的工作从今天早上突然.

所有其他应用程序,包括Xcode,都显示菜单中的快捷方式,它们工作正常.

我注意到,快捷键在模拟器启动时暂时显示菜单项,但随后完全消失(见附件)......

在此输入图像描述

我试过以下但没有成功......

  • 启动模拟器(打开Xcode项目,然后菜单Product> Run.并直接通过菜单Xcode> Open Developer Tools).

  • 删除模拟器中的所有内容和设置...

  • 重启Mac

Xcode 9.0.1(9A1004)| Mac 10.13(17A405)

keyboard xcode ios-simulator macos-high-sierra

23
推荐指数
2
解决办法
5734
查看次数

调试期间XCode 5中的内存图/图表

"内存"使用图表/图表在XCode 5 Debug导航器窗口中的确切含义是什么?

我有一个iOS应用程序项目,ARC禁用和无故事板/ xib(即旧样式).使用retain/release/autorelease手动完成所有内存管理.

当我在XCode 5中调试项目时,内存饼图/图表显示随着应用程序运行逐渐增加的内存使用量,在半小时内超过1 GB的内存占用量.

粗略地说,它每2到3秒增加0.1到0.3 MB,非常罕见的内存下降/减少(幅度<0.1 MB/30秒).

在此输入图像描述

这是内存管理方面的问题(内存泄漏)吗?我做了内存分析(使用XCode 4.6上的仪器分配/内存泄漏),但没有发现任何泄漏.

xcode memory-management objective-c

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

解除分配后如何将 WKWebView 的内存(RAM)中的用户数据清零

我希望 iOS 在用户完成后从 WKWebView 的内存(特别是在 HTML 页面中输入的用户名/密码)中将用户敏感数据归零。

下面的项目描述了 WKWebView 和 UITextField 在内存管理上的区别 -

https://github.com/iosappdeveloper/CleanMemoryCheck.git

  1. 在 UITextField(本机控件)的情况下,一旦UITextField对象被释放,系统会自动将内存清零-

作为用户,当我在其中输入文本(例如tingtongUITextField然后作为 Xcode 开发人员时,我会暂停 Xcode 以定位内存地址。(注意cstr_refs下面的第一个调用)但是,一旦 UITextField 被释放(用户弹出屏幕),开发人员就无法为相同的用户文本定位内存。(cstr_refs下面的第二个电话)

暂停并签入 Xcode 命令行

  1. 在这种情况下WKWebView,系统不会在WKWebView释放内存后将内存清零-

作为开发人员,即使在解除分配 WKWebView(弹出屏幕)之后,我也能够找到用户输入文本(即 google.com 登录时的用户名/密码)的内存。

是否有任何明确的 API 或项目设置可以帮助我在 WKWebView 托管数据中实现相同的目标?

security heap ios wkwebview

10
推荐指数
0
解决办法
326
查看次数

对于NSManagedObject,Xcode 9构建了Date vs NSDate的问题

Xcode 9为Date模拟器与设备中的实体的类型属性生成不同的代码.我在coredata中设置了codegen功能.Classcategory/extension

直到Xcode 8.3(最新)它一切正常(NSDate总是).下面是Xcode 9(Swift 4)为属性自动生成的代码 -

在设备上: -

@NSManaged public var requiredDate: Date?
Run Code Online (Sandbox Code Playgroud)

和,

在模拟器上: -

@NSManaged public var requiredDate: NSDate?
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有谁遇到过这个问题?对于一个有50多个成员的项目来解决这个问题的最佳解决方案是什么,直到Xcode更新修复它(我希望有一个苹果雷达)?

xcode date core-data nsmanagedobject codegen

7
推荐指数
1
解决办法
638
查看次数

如何将NSMutableArray保存到iphone中的plist中

我是iphone的新手,我想将NSMutableArray数据保存到plist文件中,我的代码是:

NSArray *array = [[NSArray alloc] initWithArray:self.artistDetailsArray];
[self.artistDetailsArray writeToFile:self.path atomically:YES];
Run Code Online (Sandbox Code Playgroud)

但它在我的plist路径中显示0个元素.请任何帮助我.

提前致谢:

以下是我将数据存储到plist和NSUserDefault的代码.它们都不适用于NSMutableArray/NSArray,但适用于NSString.是否存在plist或UserDefault中存储的最大大小限制?NSMutableArray仅包含NSDictionary的文本/集.

请建议我.

- (void)initialiseDataFromLocalStorage
{
       NSFileManager *fileManager = [NSFileManager defaultManager];
       NSError *error;
       NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
       NSString *documentsDirectory = [paths objectAtIndex:0];
       self.path = [documentsDirectory stringByAppendingPathComponent:@"saveLogin.plist"];
       if ([fileManager fileExistsAtPath:self.path] == NO) {
               NSString *pathToDefaultPlist = [[NSBundle mainBundle] pathForResource:@"saveLogin" ofType:@"plist"];
               if ([fileManager copyItemAtPath:pathToDefaultPlist toPath:self.path error:&error] == NO) {
                       NSAssert1(0,@"Failed with error '%@'.", [error localizedDescription]);
               }
       }

   // To get stored value from .plist
       NSDictionary *dict = [[NSDictionary alloc]initWithContentsOfFile:self.path]; …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c plist

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

UIApplicationBackgroundRefreshStatusDidChangeNotification用法没有相应的委托方法

我觉得在不支持UIApplication委托方法的情况下,iOS 7中引入的UIApplicationBackgroundRefreshStatusDidChangeNotification很少使用.因为,当用户为我的应用程序打开后台刷新状态时,不会通知应用程序.

这是我的通知处理程序......

- (void)applicationDidChangeBackgroundRefreshStatus:(NSNotification *)notification
{
    NSLog(@"applicationDidChangeBackgroundRefreshStatus with notification info = %@ and refresh status = %d", notification, UIApplication.sharedApplication.backgroundRefreshStatus);

    if (UIApplication.sharedApplication.backgroundRefreshStatus == UIBackgroundRefreshStatusAvailable) {
//        if ([CLLocationManager locationServicesEnabled]) {
            [self.locationManager startUpdatingLocation];
//        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如上所述,我想在通过应用程序设置>常规>后台应用程序刷新使UIBackgroundRegreshStatus 可用时开始更新核心位置.我觉得UIApplicationDelegate中应该有一个合适的委托方法让应用知道这个变化,以便App可以重新建立它需要的一切.

要么我缺少某些东西(预先存在的API),要么Apple SDK工程师对此通知用法有其他/有限的意图.请指教.

background-process multitasking uiapplicationdelegate nsnotificationcenter ios

4
推荐指数
2
解决办法
3414
查看次数

在顶部隐藏品牌标题 4px 粘性栏

虽然我想使用默认的蓝水晶主题,但只想隐藏蓝色品牌栏,因为我在移动应用程序中使用本机导航标题和网络指示栏。网络指示器栏与此蓝色 4 像素栏重叠。请问有什么帮助吗?

在此处输入图片说明

branding sapui5

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

Interface构建器中的NSWindowController对象链接

我创建了一个NSWindow xib文件,我想在另一个窗口中点击按钮打开它.

现在,为了控制NSWindow的行为,我从xib中的Library拖动了一个对象,并将其更改为我在XCode中定义的NSWindowController(即ListingWindowController)的子类.

类似地,我还创建了一个NSViewController的子类(即ListingViewController)来管理NSWindow中的NSView.为此,我在xib中从库中拖动NSViewController,并将其类更改为ListingViewController.

@class ListingViewController;

@interface ListingWindowController : NSWindowController {
    IBOutlet ListingViewController *listingVC;
}

@property (nonatomic, retain) IBOutlet ListingViewController *listingVC;
@end
Run Code Online (Sandbox Code Playgroud)

我在IB中连接窗口和我的窗口控制器的列表VC.

现在,在我的启动(第一个)窗口中单击按钮调用此窗口,我使用initWithWindowNibName创建窗口控制器,就像这样.

- (IBAction) pushConnect:(id)sender {
    NSLog(@"Connect pushed.");
    if (wc == nil) {
        wc = [[ListingWindowController alloc] initWithWindowNibName:@"ListingWindow" owner:self];
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(closeWindow:) name:NSWindowWillCloseNotification object:nil];

        [wc showWindow:sender];
    }
}
Run Code Online (Sandbox Code Playgroud)

问题在于,尽管在IB中为即将到来的窗口/视图的视图控制器完成了所有绑定,但即使在加载新窗口(代码下方)之后,窗口和listingVC也会出现(null),(null).

- (void)windowDidLoad {
    [super windowDidLoad];

NSLog(@"windowDidLoad = %@, %@", self.window, self.listingVC);
}
Run Code Online (Sandbox Code Playgroud)

请帮助为什么连接不起作用.我正在敲打这个问题已经有一段时间了.

PS:我来自iOS编程背景.所以,我假设Mac的窗口/视图控制器的行为类似于iOS UIViewControllers.

TIA ..

cocoa binding interface-builder nsviewcontroller nswindowcontroller

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

UI_USER_INTERFACE_IDIOM()崩溃了仅在设备上分发的应用程序

我在viewDidLoad()中创建了一个基于swift语言的示例单页基于swift语言的应用程序CRASHES

func regularFont() -> UIFont {
    var fontSize : CGFloat = (UI_USER_INTERFACE_IDIOM() == .Pad) ? 15 : 12
    return UIFont.systemFontOfSize(fontSize)
}
Run Code Online (Sandbox Code Playgroud)

但是一旦我用Apple推荐的UIDevice()方法替换了这个UI_USER_INTERFACE_IDIOM(),它就可以了.

func regularFont() -> UIFont {
    var fontSize : CGFloat = (UIDevice().userInterfaceIdiom == .Pad) ? 15 : 12
    return UIFont.systemFontOfSize(fontSize)
}
Run Code Online (Sandbox Code Playgroud)

崩溃发生在我测试的所有设备上 - iPhone 5s,iPhone 6和iPad Air(全部在iOS 8.x上),它只发生在设备上,而不是模拟器上.

PS:该应用程序通过我们的OTA/Web链接安装在所有设备上.

令我惊讶的是,我们在Apple的App Store上有另一个基于c语言的客观应用,它大量使用UI_USER_INTERFACE_IDIOM(),定期更新......但由于这个原因从未崩溃.

有什么想法吗?

crash ios swift

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