我的应用程序中有保密信息,所以当应用程序即将移动到后台时,我想用启动画面隐藏它们.
我在iOS6上运行应用程序.
我试图显示视图,applicationWillResignActive但问题是它显示启动屏幕,即使用户滑动控制面板,例如.我希望它只在应用程序移动到后台时显示.
我尝试显示我的splashScreen,applicationDidEnterBackground但它需要screenShot才能在动画期间恢复时显示信息.
这就是我想要的精神:
- (void)applicationDidEnterBackground:(UIApplication *)application {
[_window addSubview:__splashController.view];
}
Run Code Online (Sandbox Code Playgroud) 所有的Mac键盘快捷键如Cmd + Q(退出模拟器应用程序),Cmd + K(在模拟器中切换键盘隐藏/显示)等已经停止了iOS模拟器应用程序的工作从今天早上突然.
所有其他应用程序,包括Xcode,都显示菜单中的快捷方式,它们工作正常.
我注意到,快捷键在模拟器启动时暂时显示菜单项,但随后完全消失(见附件)......
我试过以下但没有成功......
启动模拟器(打开Xcode项目,然后菜单Product> Run.并直接通过菜单Xcode> Open Developer Tools).
删除模拟器中的所有内容和设置...
重启Mac
Xcode 9.0.1(9A1004)| Mac 10.13(17A405)
"内存"使用图表/图表在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上的仪器分配/内存泄漏),但没有发现任何泄漏.
我希望 iOS 在用户完成后从 WKWebView 的内存(特别是在 HTML 页面中输入的用户名/密码)中将用户敏感数据归零。
下面的项目描述了 WKWebView 和 UITextField 在内存管理上的区别 -
https://github.com/iosappdeveloper/CleanMemoryCheck.git
UITextField对象被释放,系统会自动将内存清零-作为用户,当我在其中输入文本(例如tingtong)UITextField然后作为 Xcode 开发人员时,我会暂停 Xcode 以定位内存地址。(注意cstr_refs下面的第一个调用)但是,一旦 UITextField 被释放(用户弹出屏幕),开发人员就无法为相同的用户文本定位内存。(cstr_refs下面的第二个电话)
WKWebView,系统不会在WKWebView释放内存后将内存清零-作为开发人员,即使在解除分配 WKWebView(弹出屏幕)之后,我也能够找到用户输入文本(即 google.com 登录时的用户名/密码)的内存。
是否有任何明确的 API 或项目设置可以帮助我在 WKWebView 托管数据中实现相同的目标?
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更新修复它(我希望有一个苹果雷达)?
我是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) 我觉得在不支持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
我创建了一个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
我在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(),定期更新......但由于这个原因从未崩溃.
有什么想法吗?