0

開いているウィンドウのリストとその PID を取得しようとしています。

これは私が思いついたコードです:

CFArrayRef windowList = CGWindowListCreate(kCGWindowListOptionOnScreenOnly, kCGNullWindowID);

if (windowList == nil || NULL)
    NSLog(@"The List is null");

for(NSMutableDictionary *entry in (__bridge NSArray *)windowList){
    NSString *ownerName = [entry objectForKey:(__bridge id)kCGWindowOwnerName];
    NSInteger ownerPID = [[entry objectForKey:( __bridge id)kCGWindowOwnerPID]integerValue];
    NSLog(@"%@:%ld",ownerName, ownerPID);
}

ownerName を宣言する行で例外が発生します (スレッド 1: SIGBART)

何が問題なのかわかりません.... CFArrayRef は NULL/nil ではありません

4

1 に答える 1

0

すべてのデータが辞書の形式ではない配列を確認する必要があると思います。そのため、所有者名が配列内に存在し、次に inide 辞書になる可能性があります。そのため、エラーが発生しています

于 2013-10-19T18:16:57.227 に答える