如何在Swift中用XIB文件初始化/实例化一个自定义的UIView类

我有一个名为MyClass的类,它是UIView的子类,我想用XIB文件初始化。 我不知道如何使用名为View.xib的xib文件来初始化这个类 class MyClass: UIView { // what should I do here? //init(coder aDecoder: NSCoder) {} ?? }

用xib创build一个可重用的UIView(并从storyboard中加载)

好的,在StackOverflow上有很多关于这个的post,但没有一个特别清楚解决scheme。 我想创build一个自定义的UIView与伴随的xib文件。 要求是: 没有单独的UIViewController – 一个完全独立的类 在课堂上的奥特莱斯让我设置/获取视图的属性 我目前的做法是: 覆盖-(id)initWithFrame: -(id)initWithFrame:(CGRect)frame { self = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:self options:nil] objectAtIndex:0]; self.frame = frame; return self; } 使用-(id)initWithFrame:以编程方式实例化-(id)initWithFrame:在我的视图控制器中 MyCustomView *myCustomView = [[MyCustomView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)]; [self.view insertSubview:myCustomView atIndex:0]; 这工作正常(虽然从来没有调用[super init] ,只是设置对象使用加载的笔尖的内容似乎有点怀疑 – 有build议在这种情况下添加子视图也工作正常)。 不过,我希望能够从storyboard中实例化视图。 所以我可以: 在故事板的父视图中放置一个UIView 将其自定义类设置为MyCustomView 覆盖-(id)initWithCoder: – 我见过的代码最常用的模式如下: -(id)initWithCoder:(NSCoder *)aDecoder { self […]

iOS UIWebView中的Javascript console.log()

使用UIWebView编写iPhone / iPad应用程序时,控制台不可见。 这个优秀的答案显示了如何捕获错误,但是我也想使用console.log()。

iOS KeyChain不从后台检索值

我目前在iOS KeyChain中存储用户名(email)和电子邮件和密码的哈希散列。 我正在使用这里find的ARC'ified版本。 KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"MyCustomIdentifier" accessGroup:nil]; [wrapper setObject:APP_NAME forKey:(__bridge id)kSecAttrService]; [wrapper setObject:email forKey:(__bridge id)kSecAttrAccount]; [wrapper setObject:token forKey:(__bridge id)kSecValueData]; 这一切工作正常,当我需要拉动令牌为我的networking调用,而应用程序是积极的。 它适用于从干净的启动login,以及所有的networking通话。 当应用程序在后台时,麻烦就开始了。 请记住,这只是偶尔发生,我还没有把它固定到一个特定的iOS版本或设备。 用户访问一个位置(区域监控),我想用他们的状态更新服务器。 我试图从钥匙串中取出令牌,就像我为其他networking调用一样,并更新状态。 但是对于一些用户来说,价值是零。 没有它,我无法更新networking的东西。 为什么这个工作对大多数,但不是一小部分? KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"MyCustomIdentifier" accessGroup:nil]; NSString *token = [wrapper objectForKey:(__bridge id)kSecValueData]; 我已经回到了keychainwrapper的非ARC版本,但是我仍然得到相同的结果。 我将不胜感激这方面的任何反馈。 这只是我用户的一小部分,但这是我想解决的问题,不用担心。 提前致谢。 另外,我所有的后台工作都是在后台任务中设置的,以防止事情超时。 我对围绕钥匙链的工作没有任何问题,但是我不会让事情继续下去,直到我的令牌被填满。 编辑我已经找出了我的问题与他们的keychain不从背景中检索值。 我会在下面发表答案并接受,因为我觉得这个问题以后可能会对他人有用。

iOS6 UDID – identifierForVendor具有优于identifierForAdvertising的优势吗?

苹果公司正在改变他们的隐私设置为iOS6和贬低设备的UUID(UDIDs)。 根据WWDC的演示文档和文档, UIDevice类中有两个UDIDreplace项: -identifierForVendor 来自同一开发人员的应用程序之间的ID相同。 删除该团队ID的最后一个应用。 备份。 -identifierForAdvertising 设备的独特之处 适用于所有应用程序; 用于广告 – iAd从iOS 6及更高版本的UDID转换而来。 使用“清除所有内容和设置”重置。 备份。 在我看来, -identifierForVendor不如-identifierForAdvertising因为它将在上次从供应商卸载应用程序时被重置,并通过“擦除所有内容和设置”被重置。 -identifierForVendor具有over -identifierForAdvertising优点吗?

如何手动Symbolicate iOS崩溃查看崩溃日志

试图debugging应用程序。 麻烦的是我找不到这个程序。 symbolicatecrash.sh sudo cp /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneRemoteDevice.xcodeplugin/Contents/Resources/symbolicatecrash /usr/local/bin/ 它是一个单独的下载? 我正在使用XCode 3.2.3 谢谢。

ARC – __unsafe_unretained的含义?

只是想确保我说得对: 我是否需要__unsafe_unretain我不拥有的对象? 如果一个对象是__unsafe_unretained我是否需要在@property使用assign ? 这是否意味着对象不被保留,只是指向我分配的对象? 我何时想使用它,除了代表? 这是一个ARC的事情还是之前使用?

什么是iPhone应用程序的生命周期?

任何人都可以解释什么是iPhone的生命周期过程? 即从应用程序生命周期的开始到结束。

swift NSDateFormatter不起作用

我试图格式化时间如下: let formatter = NSDateFormatter() formatter.dateFormat = "hh_mm_ss" let d = formatter.stringFromDate(NSDate()) println("formatted text is: \(d)") 假设当前时间是2014年9月3日22:15:30 当我在操场上运行这个脚本时,它会打印格式正确的时间: 22_15_30 。 在AppDelegate上运行时,它不打印格式化的时间: 22:15:30 : 22:15:30 : 22:15:30 我正在使用xcode 6 beta 5 …我错过了什么吗? 为什么stringFromDate没有返回格式正确的date? 编辑 :我正在使用xcode 6 beta 6。 谢谢!

避免video开始和结束时的模糊(甚至在使用setPreferredVideoStabilizationMode:AVCaptureVideoStabilizationModeAuto之后)?

我们在使用setPreferredVideoStabilizationMode:AVCaptureVideoStabilizationModeAuto同时在iOS上捕捉video,但是video在开始和结束时有时会变得模糊(尽pipe在中间很好),这是非常有问题的,因为我们把第一帧作为静止图像以便在不切换相机模式的情况下启用video和照片function)。 将设备平放在桌面上可消除所有的模糊,因此整个video都是清晰的。 这表明它与video稳定有关,但是还有其他属性可以设置吗? locking焦点模式的问题吗? 其他疑难解答提示? 以下是PBJVision的video捕获function,我们使用这个function: – (void)startVideoCapture { if (![self _canSessionCaptureWithOutput:_currentOutput] || _cameraMode != PBJCameraModeVideo) { [self _failVideoCaptureWithErrorCode:PBJVisionErrorSessionFailed]; DLog(@"session is not setup properly for capture"); return; } DLog(@"starting video capture"); [self _enqueueBlockOnCaptureVideoQueue:^{ if (_flags.recording || _flags.paused) return; NSString *guid = [[NSUUID new] UUIDString]; NSString *outputFile = [NSString stringWithFormat:@"video_%@.mp4", guid]; if ([_delegate respondsToSelector:@selector(vision:willStartVideoCaptureToFile:)]) { outputFile […]