0

プライベートフレームワークを介してお気に入りの連絡先にアクセスしようとしています。私はサイフォンコードに従い、iOS-Runtime-Headersからフレームワークを入手しました

リストにアクセスするために私が書いたコードは次のとおりです。

    NSBundle *b = [NSBundle bundleWithPath:@"/System/Library/Frameworks/AddressBookUI.framework"];
  BOOL success = [b load];

  Class favs = NSClassFromString(@"ABFavoritesList");

  id favList = [favs sharedInstance];

  NSLog(@"Favs count = %d", [[favList entries] count]);

何らかの理由で、エントリはnilとしてフェッチされています。どんな助けでもいただければ幸いです。

4

1 に答える 1

0

私はちょうどあなたのコードを試してみました とsuccessに等しいNO、 とfavsfavList等しい、ロードに失敗したnilと思います。AddressBookUI.framework

その後、プロジェクトをAddressBook.frameworkおよびAddressBookUI.frameworkフレームワークに追加 (リンク) し、このコードを実行してみました (バンドルの読み込み部分が削除されていることに注意してください)。

Class favs = NSClassFromString(@"ABFavoritesList");
id favList = [favs sharedInstance];
NSLog(@"Favs count = %d", [[favList entries] count]);

そしてそれは動作します。多分あなたはそれを試すことができます。

ところで、おそらくご存知でしょうが、プライベート コード (この場合はABFavoritesList) を直接使用することは決して良い考えではありません。このコードは将来変更される可能性があるためです。

于 2011-09-23T20:13:34.900 に答える