我是iOS的新手,正在学习使用Swift进行编码。我的应用程序需要测量信号强度。我发现此代码可在Objective-C / C上运行,并且需要一些帮助才能在Swift上实现。这就是我得到的。希望有人可以帮助我完成它。

objective-c

    int getSignalStrength()
    {
       void *libHandle = dlopen("/System/Library/Frameworks/CoreTelephony.framework/CoreTelephony", RTLD_LAZY);
       int (*CTGetSignalStrength)();
       CTGetSignalStrength = dlsym(libHandle, "CTGetSignalStrength");
       if( CTGetSignalStrength == NULL) NSLog(@"Could not find CTGetSignalStrength");
       int result = CTGetSignalStrength();
       dlclose(libHandle);
       return result;
    }

SWIFT
    func getSignalStrength()->Int{
       var result : Int! = 0
       let libHandle = dlopen ("/System/Library/Frameworks/CoreTelephony.framework/CoreTelephony", RTD_LAZY)
       ** help **
       var CTGetSignalStrength = dlsym(libHandle, "CTGetSignalStrength")
       if (CTGetSignalStrength != nil){
           result = CTGetSignalStrength()
       }
       dlclose(libHandle)
       return result
    }

最佳答案

不要使用dlopen加载CoreTelephony。在您的Swift文件顶部使用import CoreTelephony。然后,就像使用其他任何函数一样,只需使用CTGetSignalStrength即可。

08-19 12:21