我正在创建一个Tcp客户端,因此使用CFStreamCreatePairWithSocketToHost期望UInt32的第二个参数.
以下是我正在尝试做的一个示例:
func initNetwork(IP: String, Port: Int) {
// relevant stuff
//Convert Port:Int to UInt32 to make this shit work!
CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, IP as NSString , Port , &readStream, &writeStream)
// Irelevant stuff
}
Run Code Online (Sandbox Code Playgroud)
我一直在寻找一段时间的解决方案,我似乎找不到一个!
我如何获得我的本地IpAddress?
我试着用这个Obj C例子:如何以编程方式获取iphone的ip地址
当我进入该功能时,getifaddrs()我无法进一步.我无法使用该功能.
有没有其他方法可以做到这一点,或者我是以错误的方式接近这个?
我在db中加载相关对象时遇到异常.我正在加载我的所有MatchData对象,我想用foreach迭代它们.
我正在加载的对象是:
MatchData类:
public class MatchData
{
[Key]
public virtual int Id { get; set; }
private List<PlayerData> blueTeam = new List<PlayerData>();
private List<PlayerData> redTeam = new List<PlayerData>();
[InverseProperty("MatchDataBlue")]
public virtual List<PlayerData> BlueTeam
{
get { return blueTeam; }
set { blueTeam = value; }
}
[InverseProperty("MatchDataRed")]
public virtual List<PlayerData> RedTeam
{
get { return redTeam; }
set { redTeam = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
PlayerData类:
public class PlayerData
{
// properties
[Key]
public virtual int Id { …Run Code Online (Sandbox Code Playgroud) 我在将字符串从swift传递到用c编写的函数时遇到了很大的麻烦。
我想在我的快速代码中做到这一点
var address = "192.168.1.2"
var port = 8888
initSocket(address, port)
Run Code Online (Sandbox Code Playgroud)
c函数如下所示:
void initSocket(char *address, int port);
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:无法将'Void'类型的表达式转换为'CMutablePointer'类型
我似乎找不到有效的解决方案。
总Objective-c noob这里有一个问题.有没有办法在一行中将NSURL转换为NSString?我需要从sqlite数据库abd检索URL然后将其保存到字符串中.
目前我要转换的行看起来像这样 - >
MyString.url = [NSString stringWithUTF8String:(char *) sqlite3_column_text(sqlStatement, 1)];
Run Code Online (Sandbox Code Playgroud)
所以当然得到'不兼容的指针类型从'NSString*'分配'NSURL*'
:)
我已经使用下拉列表创建了一个statusBar应用程序.我想从该下拉列表打开一个settingsWindow.我已经使用自己的ViewController创建了设置窗口.
问题是我无法弄清楚如何实例化并显示我所做的settingsWindow.我试图跟踪互联网上的每个线程,但没有任何成功.
我的Viewcontroller:
class SettingsViewController: NSViewController {
@IBOutlet var ipAddress: NSTextField!
@IBOutlet var port: NSTextField!
@IBAction func connect(sender: AnyObject) {}
override func viewDidLoad() {
super.viewDidLoad()
}
}
Run Code Online (Sandbox Code Playgroud)
我的AppDelegate:
class AppDelegate: NSObject, NSApplicationDelegate {
@IBOutlet var statusMenu: NSMenu!
var statusItem: NSStatusItem?
var tcpService: TcpService = TcpService()
func applicationDidFinishLaunching(aNotification: NSNotification?) {
let bar = NSStatusBar.systemStatusBar()
statusItem = bar.statusItemWithLength(20)
statusItem!.menu = statusMenu
statusItem!.image = NSImage(byReferencingFile: NSBundle.mainBundle().pathForResource("16*16", ofType: "png"))
statusItem!.highlightMode = true
tcpService.initOutputStream("192.168.1.1", Port: 8888)
}
func applicationWillTerminate(aNotification: NSNotification?) {
// Insert code here …Run Code Online (Sandbox Code Playgroud) 有没有办法在Garmin Fenix 3中使用加速度计?我正在为我的Fenix 3手表开发一个Stroke Coach应用程序.
我的问题是我不知道如何利用我所知道的加速计传感器.我搜索了所有Garmin IQ兼容设备开发应用程序的文档,但没有运气.
关于这个的任何想法?
我使用套接字创建了一个服务器和一个客户端.我的服务器是用c语言编写的,运行在我的覆盆子pi上,我的客户端用Swift编写,运行在我的Mac/iPhone上.
我没有得到的是当我的服务器recv()函数执行我从客户端发送的内容时?如果我发送0-10个字节,它在关闭连接之前不会从recv()函数返回.但如果我发送100多个字节,它会立即执行.
每当我从客户端写一条消息时,我希望我的服务器从recv()返回.
这是我的服务器recv()函数:
//Receive a message from client
while( (read_size = recv(sock , client_message , 2000 , 0)) > 0 )
{
printf("%s", client_message);
}
Run Code Online (Sandbox Code Playgroud)
这是我的客户端写方法:
func SendMsg(msg:String) -> Int{
return outputStream!.write(msg, maxLength: countElements(msg))
}
Run Code Online (Sandbox Code Playgroud)
一切正常,除了我无法控制我的服务器何时执行我的消息.