gpt4 book ai didi

iphone - 获取地址簿数据,它的代码在模拟器上运行但没有运行 iPhone 设备。

转载 作者:行者123 更新时间:2023-11-28 20:13:54 25 4
gpt4 key购买 nike

我已经在我的应用程序中的 tableView 中获取了地址簿数据。这段代码在模拟器中成功运行。我在模拟器中的应用程序的 tableView 中获得了联系人数据,但是当我在我的设备中测试它时,联系人数据没有得到。我使用 6.1 模拟器和 iPhone 设备 ios 6.1.3。请建议我这段代码中的实际问题是什么?此代码在模拟器中成功运行,但它的代码未在 iPhone 设备 iOS 6.1.3 中运行

谢谢你

ClsMainPageAppDelegate.h

#import <UIKit/UIKit.h>
#import "Person.h"

@interface ClsMainPageAppDelegate : UIResponder <UIApplicationDelegate>
{
}
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) Person *objPerson;
@end

ClsMainPageAppDelegate.m

#import "ClsMainPageAppDelegate.h"
#import "ClsMainPageViewController.h"

@implementation ClsMainPageAppDelegate
@synthesize objPerson;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
}

Person.h

#import <Foundation/Foundation.h>
@interface Person : NSObject

@property (nonatomic, strong) NSString *firstName;
@property (nonatomic, strong) NSString *lastName;
@property (nonatomic, strong) NSString *fullName;
@property (nonatomic, strong) NSString *phoneNumber;
@property (nonatomic, strong) NSString *workEmail;

@end

Person.m

#import "Person.h"

@implementation Person


- (id)init
{
self = [super init];
if (self)
{

}
return self;
}

@end

ClsAddressBookViewController.h

#import <UIKit/UIKit.h>

@interface ClsAddressBookViewController : UIViewController

- (IBAction)backcontacts:(id)sender;
@end

ClsAddressBookViewController.m

#import "ClsAddressBookViewController.h"
#import "ClsUpdateNetworkViewController.h"
#import "ClsMainPageAppDelegate.h"
#import "Person.h"
#import <AddressBook/AddressBook.h>


@interface ClsAddressBookViewController () <UITableViewDataSource, UITableViewDelegate>

@property (nonatomic, strong) NSMutableArray *tableData;

@end

@implementation ClsAddressBookViewController

@synthesize tableData;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.

self.title = @"Contacts";
self.tableData = [[NSMutableArray alloc]init];
[self getPersonOutOfAddressBook];

}

- (void)getPersonOutOfAddressBook
{
CFErrorRef error = NULL;

ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, &error);

if (addressBook != nil)
{
NSLog(@"Succesful.");

NSArray *allContacts = (__bridge_transfer NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);

NSUInteger i = 0;
for (i = 0; i < [allContacts count]; i++)
{
Person *person = [[Person alloc] init];

ABRecordRef contactPerson = (__bridge ABRecordRef)allContacts[i];

NSString *firstName = (__bridge_transfer NSString *)ABRecordCopyValue(contactPerson, kABPersonFirstNameProperty);
NSString *lastName = (__bridge_transfer NSString *)ABRecordCopyValue(contactPerson, kABPersonLastNameProperty);


NSString *fullName = [NSString stringWithFormat:@"%@ %@", firstName, lastName];

person.firstName = firstName;
person.lastName = lastName;
person.fullName = fullName;


//Mobile Number
ABMultiValueRef mobilenum = ABRecordCopyValue(contactPerson, kABPersonPhoneProperty);
NSUInteger k = 0;
for(k = 0; k < ABMultiValueGetCount(mobilenum); k++)
{
NSString *mobile = (__bridge_transfer NSString *)ABMultiValueCopyValueAtIndex(mobilenum, k);
if(k == 0)
{
person.phoneNumber = mobile;
NSLog(@"person.mobilenum = %@", person.phoneNumber);
}
else if (k==1)
person.phoneNumber = mobile;
}

[self.tableData addObject:person];
}
}

CFRelease(addressBook);
}

#pragma mark TableView Delegate

-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.tableData count];
}

-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

static NSString *cellIdentifier = @"Identifier";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}

Person *person = [self.tableData objectAtIndex:indexPath.row];

cell.textLabel.text = person.fullName;

return cell;

}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
Person *person = [self.tableData objectAtIndex:indexPath.row];


ClsMainPageAppDelegate *objdelegate = [[UIApplication sharedApplication]delegate];
objdelegate.objPerson = person;

UIStoryboard *storybrd = self.storyboard;
ClsAddressBookViewController *svc = [storybrd instantiateViewControllerWithIdentifier:@"clsUpdatecontrol"];
[self presentViewController:svc animated:YES completion:nil ];


}

最佳答案

从 IOS 6. 它需要授权您的应用程序访问系统数据:在您的 iPhone 设置中的 secret 选项卡和联系人部分,验证您的应用是否具有访问权限“打开”

关于iphone - 获取地址簿数据,它的代码在模拟器上运行但没有运行 iPhone 设备。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18921170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com