Swift – 检查非托pipe地址簿单值属性为零

我是相对新的iOS开发和迅速。 但是到目前为止,我总是能够通过一些关于计算器和一些文档和教程的研究来帮助自己。 但是,还有一个问题,我找不到任何解决scheme。 我想从用户地址簿中获取一些数据(例如,单个值属性kABPersonFirstNameProperty )。 由于.takeRetainedValue()函数会引发错误,如果此联系人没有在.takeRetainedValue()的firstName值,我需要确保ABRecordCopyValue()函数确实返回一个值。 我试图在closures中检查这个: let contactFirstName: String = { if (ABRecordCopyValue(self.contactReference, kABPersonFirstNameProperty) != nil) { return ABRecordCopyValue(self.contactReference, kABPersonFirstNameProperty).takeRetainedValue() as String } else { return "" } }() contactReference是ABRecordRef!types的variablesABRecordRef! 当地址簿联系人提供firstName值时,一切工作正常。 但是,如果没有名字,则应用程序会通过.takeRetainedValue()函数崩溃。 看来,if语句没有帮助,因为ABRecordCopyValue()函数的非托pipe返回值不是nil,尽pipe没有firstName。 我希望我能够清楚地说明我的问题。 如果有人能帮助我解决一些脑波,那将是非常棒的。

Swift正则expression式格式?

我熟悉做pcre正则expression式,但是他们似乎并不快速工作。 ^([1-9]\d{0,2}(\,\d{3})*|([1-9]\d*))(\.\d{2})?$ validation数字,如1,000,000.00 但是,把这个放在我的swift函数中,会导致一个错误。 extension String { func isValidNumber() -> Bool { let regex = NSRegularExpression(pattern: "^([1-9]\d{0,2}(\,\d{3})*|([1-9]\d*))(\.\d{2})?$", options: .CaseInsensitive, error: nil) return regex?.firstMatchInString(self, options: nil, range: NSMakeRange(0, countElements(self))) != nil } } “无效的转义序列无效” 这当然是因为pcre使用了“\”字符,这个字符很快被解释为逃避(我相信?) 所以,因为我不能只使用我习惯的正则expression式。 我如何将它们翻译成与Swift代码兼容?

用逗号分隔的NSNumberFormatter

我试图将“12000.54”的NSString转换为“12.000,54”。 我写了一个NSNumberFormatter实例。 NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init] autorelease]; [formatter setFormatterBehavior:NSNumberFormatterBehavior10_4]; [formatter setNumberStyle:NSNumberFormatterDecimalStyle]; [formatter setGroupingSeparator:@"."]; [formatter setDecimalSeparator:@","]; 但是当我NSLog这个: NSLog(@"%@",[formatter stringFromNumber:[formatter numberFromString:value]]); 它打印空值。 如果我改变我的逗号点是正确的。 我只是想能够把我想要的分隔符字段(逗号,点,斜杠等),我有不同的输出:12 / 000,54 12.000.54 12,000,54例如。 你知道我可以如何处理这个?

如何在Swift中调用deinit

我写了一个代码块如下: class Person{ let name:String; init(name:String){ self.name = name; println("\(name) is being initialized."); } deinit{ println("\(name) is being deInitialized."); } } var person:Person?; person = Person(name:"leo"); person = nil; 初始化时, print是可以的。 当人设置nil ,不调用deinit方法。

Facebook的login给我已经授权这个应用程序没有自动返回到应用程序

我的应用程序应该实现loginFacebook的,但我已经注意到,每次我想loginFacebook告诉我你已经授权这个应用程序,问题,如果我已经授权的应用程序的Facebook应该自动返回,而无需按下按键,因为我看到在其他应用程序? 看到附加的图像

+ entityForName:nil不是合法的NSManagedObjectContext参数search实体名称“帐户”

我已经尝试了很多选项,但是找不到解决这个问题的方法。 我创build了一个核心数据文件,并命名实体帐户,创build一个名为用户名的string属性。 然后编辑实体的类到NSManagedObject,不知道这是否正确。 现在,下面的代码在我的LoginViewController中: – (void)viewDidLoad { [super viewDidLoad]; ITAppDelegate *appDelegate = (ITAppDelegate *)[[UIApplication sharedApplication] delegate]; NSManagedObjectContext *context = appDelegate.managedObjectContext; Account *newAccount = [NSEntityDescription insertNewObjectForEntityForName:@"Account" inManagedObjectContext:context]; [newAccount setValue:@"Jorge" forKey:@"username"]; [newAccount setPassword:@"password"]; NSLog(@"username:%@ password: %@", [newAccount username], [newAccount password]); } 我遵循这个教程 ,我的代码文件如下所示: ITAppDelegate.h #import <UIKit/UIKit.h> @interface ITAppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; @property […]

在iOS5中做一个固定工作的背景附件?

这是否在iOS 5中工作? .element { background: url(images/myImage.jpg) 50% 0 no-repeat fixed; } 我认为它应该,但是到目前为止它不是。

自定义背景指示图像和iOS 11

我在我的应用程序中使用自定义后退button。 这个自定义后退button是这样设置的: UINavigationBar.appearance().backIndicatorImage = UIImage(named: "Back").withRenderingMode(.alwaysOriginal) UINavigationBar.appearance().backIndicatorTransitionMaskImage = UIImage(asset: .back).withRenderingMode(.alwaysOriginal) 在iOS 11之前,这段代码实现了这个诀窍,但现在在iOS 11中,button不再是垂直居中了,如下所示: 我可以将后退button图像的高度更改为44,但这会在iOS <11中破坏它。我也可以使用两个不同的图像,但是我正在寻找更干净的东西,例如将图像垂直居中button容器视图。 编辑: 原来,正如banxii1988所说的那样,这个问题是由setBackButtonTitlePositionAdjustment引起的,当值故意将标题移动到可见屏幕之外。 这是一个黑客,以避免在每个视图控制器中删除后退button标题。 我决定删除这个黑客​​,我做了正确的事情是: 将故事板中的后退button项目设置为" " 。 在每个视图控制器没有关联的故事板,我以编程方式设置backBarButtonItem navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil) 请注意,在视图控制器中看到的后退button标题在导航堆栈中的前一个标题中设置。

我如何给我的故事板内的视图控制器“标识符”?

instantiateViewControllerWithIdentifier:方法要求我通过的视图控制器有一个标识符。 我去了我的故事板,并点击我的视图控制器,但我看不到设置标识符的选项。 我在哪里可以find这个选项?

从一组(逻辑)

我有一个iOS应用程序的逻辑问题,但我不想用蛮力解决它。 我有一组整数,值不是唯一的: [3,4,1,7,1,2,5,6,3,4……..] 我如何从这三个条件中获得一个子集: 我只能select一定数量的值。 拾取元素的总和等于一个值。 select必须是随机的,所以如果有多个解决scheme的值,它不会总是返回相同的。 提前致谢!