@interface ()
/** 字符串 */
@property (strong, nonatomic) NSString *string;
@end
void (^test)(void) = ^ {
self.string = @"string";
};
NSLog(@"%@",self.string);
__block NSString *str = nil;
void (^test)(void) = ^ {
str = @"string";
};
NSLog(@"%@",str);
- (void)awakeFromNib
{
self.autoresizingMask = UIViewAutoresizingNone;
}
scrollView.frame = self.view.bounds;
scrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
// 代理方法
#pragma mark - <ABPeoplePickerNavigationControllerDelegate>
/**
* 当选择某一个联系人的时候就会执行该方法
*
* @param person 每一个联系人就是一条记录
*/
- (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person
{
// 1.获取对应联系人的电话号码
ABMultiValueRef phones = ABRecordCopyValue(person, kABPersonPhoneProperty);
CFIndex phoneCount = ABMultiValueGetCount(phones);
NSString *phoneValue;
for (CFIndex i = 0; i < phoneCount; i++) {
phoneValue = (__bridge NSString *)ABMultiValueCopyValueAtIndex(phones, i);
}
// 2.发短信
dispatch_async(dispatch_get_main_queue(), ^{
// 3.发短息
// 3.1.显示发短息的控制器
MFMessageComposeViewController *messageComposeVC = [[MFMessageComposeViewController alloc] init];
// 3.2.设置内容
messageComposeVC.body = self.msgString;
// 3.3.设置代理
messageComposeVC.messageComposeDelegate = self;
// 3.4.设置收件人
messageComposeVC.recipients = @[phoneValue];
// 3.5.显示控制器
[self presentViewController:messageComposeVC animated:NO completion:nil];
});
// 3.释放应该释放对象
CFRelease(phones);
#warning 是否有内存泄露
CFRelease((__bridge CFTypeRef)(phoneValue));
}