我想用一些蓝牙低能量开发套件创建我自己的iBeacon.Apple还没有发布iBeacons规范,但是一些硬件开发商已经反向使用AirLocate示例代码设计iBeacon并开始销售iBeacon开发套件.
那么iBeacon蓝牙配置文件是什么?
Bluetooth Low Energy使用GATT进行LE配置文件服务发现.所以我认为我们需要知道属性句柄,属性类型,属性值,以及iBeacon属性的属性权限.那么,对于UUID为E2C56DB5-DFFB-48D2-B060-D0F5A71096E0的iBeacon,主要值为1,次要值为1,蓝牙GATT配置文件服务是什么?
这是我在Apple论坛和文档讨论中做出的一些假设.
您只需要查看蓝牙外围设备的配置文件服务(GATT)即可知道它是iBeacon.
Major和Minor键在此配置文件服务中的某处编码
有些公司使用iBeacon Dev Kits似乎已经有了这个数字:
希望我们能及时在Bluetooth.org上发布这样的个人资料:https://www.bluetooth.org/en-us/specification/adopted-specifications
reverse-engineering bluetooth ios bluetooth-lowenergy ibeacon
我注意到UIImageView上的AFNetworking和SDWebImage类别具有相同的方法名称.
AFNetworking:
- (void)setImageWithURL:(NSURL *)url {
[self setImageWithURL:url placeholderImage:nil];
}
- (void)setImageWithURL:(NSURL *)url
placeholderImage:(UIImage *)placeholderImage
{
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPShouldHandleCookies:NO];
[request addValue:@"image/*" forHTTPHeaderField:@"Accept"];
[self setImageWithURLRequest:request placeholderImage:placeholderImage success:nil failure:nil];
}
- (void)setImageWithURLRequest:(NSURLRequest *)urlRequest
placeholderImage:(UIImage *)placeholderImage
success:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image))success
failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error))failure
{
...
}
Run Code Online (Sandbox Code Playgroud)
和SDWebImage
- (void)setImageWithURL:(NSURL *)url
{
[self setImageWithURL:url placeholderImage:nil options:0 progress:nil completed:nil];
}
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder
{
[self setImageWithURL:url placeholderImage:placeholder options:0 progress:nil completed:nil];
}
- …
Run Code Online (Sandbox Code Playgroud) 我环顾四周,从来没有找到一个完整的Xcode退出代码列表,尤其是与iOS合作.这个问题:以"退出状态5"为模拟器崩溃,除非我有断点,只是说我需要重新启动xcode来解决标记为"退出代码5"的常见问题.还有很多其他类似的问题.解决方案通常有效,但我不明白它们是如何工作的.下次我遇到这些退出代码时,我想知道它们的含义,这样我就可以更好地了解如何防止它再次发生.
什么是常见的Xcode信号和退出代码?
我想在自己的服务器上分发我的Beta Adhoc版本.苹果用于通过无线方式安装应用程序的逻辑中似乎有两个重要的URL.
第一个网址是HTML:
<p><a href="itms-services://?action=download-manifest&url=http://www.example.com.cn/path/to/plist/theplist.plist">Adhoc Build</a></p>
Run Code Online (Sandbox Code Playgroud)
第二个是plist文件
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>http://www.example.com.cn/path/to/binary/app.ipa</string>
</dict>
Run Code Online (Sandbox Code Playgroud)
这些网址可以是相对的吗?我希望在我的开发机器(MAMP服务器)上使用相同的HTML和XML文件,首先测试我可以下载二进制文件,然后将adhoc构建发布到我的Web服务器(NGINX)上的测试人员.目前我只能用绝对网址来使用它.
我的想法是这两个相对的URL应该工作
<p><a href="itms-services://?action=download-manifest&url=/path/to/plist/theplist.plist">Adhoc Build</a></p>
Run Code Online (Sandbox Code Playgroud)
和
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>/path/to/binary/app.ipa</string>
</dict>
Run Code Online (Sandbox Code Playgroud)
当我使用这些相对URL时,当我点击"无法连接到(null)"时,我会从设备弹出一个
给定这样的导航堆栈层次结构,其中将编辑按钮添加到另一个源文件中
struct ContentView : View {
var body: some View {
NavigationView {
EditingView()
}.navigationBarItems(trailing: EditButton())
}
}
Run Code Online (Sandbox Code Playgroud)
使用编辑按钮的视图在代码库的其他地方
struct EditingView : View {
@State var dataValue: String = "Initial Value"
@Environment(\.editMode) var editMode
var body: some View {
VStack(alignment: .leading) {
if self.editMode?.value == .inactive {
Text(dataValue)
} else {
TextField(($dataValue))
}
}.padding()
.navigationBarTitle("Lets edit some State")
.navigationBarItems(trailing: EditButton())
}
}
Run Code Online (Sandbox Code Playgroud)
我可以在预览中以编程方式设置初始编辑模式吗?有没有办法使用环境在没有编辑按钮的情况下查看 EditingView?代码片段中显示了我发现工作的几种方法,但我希望我能找到一种方法来以编程方式使用环境设置和初始值。
#if DEBUG
struct EditingView_Previews : PreviewProvider {
static var previews: some View {
NavigationView {
VStack …
Run Code Online (Sandbox Code Playgroud) 我想创建一个重复功能,使用组合在我的代码中创建一个循环。我注意到,Combine 没有通过这个伟大的仓库重复发布:https://github.com/freak4pc/rxswift-to-combine-cheatsheet。这是我编写的代码,用于重复 2 个状态。如何将其简化为更具可读性或创建我自己的重复函数?
toggleShouldDisplay = Just<Void>(())
.delay(for: 2, scheduler:RunLoop.main)
.map({ _ in
self.shouldDisplay = true
self.didChange.send(())
})
.delay(for: 2, scheduler: RunLoop.main)
.map({ _ in
self.shouldDisplay = false
self.didChange.send(())
})
.setFailureType(to: NSError.self)
.tryMap({ _ in
throw NSError()
})
.retry(.max) // I might hit Int.max if I reduce the delays
.sink(receiveValue: { _ in
//Left empty
})
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过发布请求发送电子邮件。我正在使用 Express 和 nodemailer。我对“fs”感到困惑我的电子邮件正在发送,但图像未作为附件包含在内。我检查了文档,但它们似乎都发送了静态文件,而不是从表单请求中流式传输的文件。
var smtpTransport = nodemailer.createTransport("SMTP",{
service: "Gmail",
auth: {
user: "gmail_address@gmail.com",
pass: "password_for_gmail_address"
}
});
app.get('/', function(req, res){
res.send('<form method="post" enctype="multipart/form-data">'
+ '<p>Post Title: <input type="text" name="title"/></p>'
+ '<p>Post Content: <input type="text" name="content"/></p>'
+ '<p>Image: <input type="file" name="image"/></p>'
+ '<p><input type="submit" value="Upload"/></p>'
+ '</form>');
})
app.post('/', function(req, res, next){
var mailOptions = {
from: "gmail_address@gmail.com", // sender address
to: "somebodyelse@example.com", // list of receivers
subject: req.body.title, // Subject line
text: req.body.content, // plaintext body
attachments:[
{
fileName: …
Run Code Online (Sandbox Code Playgroud) 我正在调试我的项目并将其移动到支持iOS 8.在许多其他问题中,我注意到Xcode 6的新视图调试功能在调试栏中不可用,并且在"应用程序"菜单栏中也不可用.
是否有此功能的构建设置?
ios ×4
swift ×2
xcode ×2
afnetworking ×1
bluetooth ×1
combine ×1
debugging ×1
email ×1
exit-code ×1
express ×1
html ×1
ibeacon ×1
ios8 ×1
iphone ×1
node-modules ×1
node.js ×1
nodemailer ×1
objective-c ×1
sdwebimage ×1
swiftui ×1
xcode6 ×1
xml ×1