我一直在开发我的第一个iPhone应用程序兼职,并希望开始使用比我过去四个月使用的更严格的版本控制形式,即将源代码文件夹复制到另一个目录并为它们加盖时间戳.
我使用过SourceSafe和Team Foundation System,但我不太清楚Macintosh可用的版本控制系统(VCS).我在SO上看过Subversion广告的广告,但是想要一些其他的选择.
这是我的初始要求列表:
在此先感谢您的帮助.
我正在使用MFMailComposeViewController从iPhone v3.0应用程序中发送电子邮件.我以编程方式创建消息正文文本并在显示选择器之前显示它.
在我的邮件底部正文文本是字符串"从我的iPhone发送".是否有修改此文本或阻止它出现?粗略审查MFMailComposeViewController类参考和快速谷歌搜索没有任何结果.
提前致谢.
email iphone message boilerplate mfmailcomposeviewcontroller
在C#.NET和VB.NET中迭代强类型泛型List的最佳方法是什么?
上周,我在NE的一家TripleA MMORPG游戏公司采访了一个职位.我没有得到这份工作,但在访谈期间提出的一个方面是关于您编写的代码的可伸缩性以及在架构和类的设计中应该如何考虑它.
遗憾的是,我从未想过我编写的.NET代码的可扩展性(我使用单用户桌面和移动应用程序,我们主要关心的是设备内存和数据传输速率).我有兴趣学习更多关于编写可以扩展的代码,以便它可以处理客户端服务器环境中的各种远程用户,特别是MMORPG.
是否有任何书籍,网站,最佳实践等可以让我开始研究这个主题?
我试图在连接到Windows 7笔记本电脑的三星Galaxy S3上运行一小组初步的calabash-android测试,并在尝试启动测试服务器时不断获得"应用程序未启动(RuntimeError)".
我已经安装了Ruby v1.9.3p448,RubyDevKit 4.5.2(32位),Ant 1.9.2和AnsiCon.我已经在命令提示符下键入"gem install calabash-android"安装了calabash-android 0.4.20及其所有依赖宝石.我使用Xamarin Studio和发布密钥库创建了一个签名的APK.使用--dry-run标志运行时,我正确解析了我的六个步骤的初始功能集.
当我输入"calabash-android run com.XYZ.ABC.apk --verbose时,会发生以下情况:
此时我们得到"App没有启动(RuntimeError)"消息.这是命令行中的相应详细信息.
2014-03-11 08:10:05 - Starting test server using:
2014-03-11 08:10:05 - "C:\Users\BMaya\AppData\Local\Android\android-sdk/platform-tools/adb.exe" -s 4df18df165d46f4d shell am instrument -e target_package com.trimble.terraflex -e main_activity trimble.tfm.fieldapp.SplashActivity -e test_server_port 7102 -e debug false -e class sh.calaba.instrumentationbackend.InstrumentationBackend com.trimble.terraflex.test/sh.calaba.instrumentationbackend.CalabashInstrumentationTestRunner
App did not start (RuntimeError)
C:/Ruby193/lib/ruby/gems/1.9.1/gems/calabash-android-0.4.20/lib/calabash-android/operations.rb:505:in `block in start_test_server_in_background'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/retriable-1.3.3.1/lib/retriable/retriable.rb:31:in `perform'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/retriable-1.3.3.1/lib/retriable/retriable.rb:53:in `retriable'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/calabash-android-0.4.20/lib/calabash-android/operations.rb:504:in `start_test_server_in_background'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/calabash-android-0.4.20/lib/calabash-android/operations.rb:93:in `start_test_server_in_background'
Run Code Online (Sandbox Code Playgroud)
我也尝试从Ruby命令提示符运行测试,结果相同:
我用Google搜索并尝试了以下方法:
长期以来,Windows开发人员,第一次使用Objective-C/iPhone开发人员想要创建NSArrays的NSDictionary,它可以在带有字母部分的普通UITableView中显示.
这个数组字典的源代码是一个包含按字母顺序排序的商店名称的数组:
苹果商店
亚特兰大面包公司
国界
熊熊工作室
嘉吉画廊
迪拉兹
迪克体育用品
埃迪Baure
手提箱
GameStop的
Heizberg钻石
视点
麦当劳
诺德斯特龙
玮伦鞋业
Pottery Barn的
冬至
星巴克咖啡
维多利亚的秘密
白色谷仓烛业
从源创建的数组字典应该类似于这样(括号中的数据类型):
Root(Dictionary)
.... A(Array)
........ Apple Store(String)
........ Atlanta Bread Company(String)
.... B(Array)
... ..... Borders(String)
........ Build-A-Bear Workshop(String)
.... C(Array)
........ Cargill Gallery(String)
... .D(阵列)
........ Dillards(String)
........ Dick的体育用品(String)
......等.
像上面结构的数组字典填充TableView并显示如下:
一个
苹果商店
亚特兰大面包公司
乙
国界
熊熊工作室
Ç
嘉吉画廊
d
迪拉兹
迪克体育用品
等.
我编写的创建数组字典的代码最终将每个节标题后面的最后一个商店(White Barn Candle Co.)放入.
A
White Barn Candle Co.
B
White Barn Candle …
我在iPhone屏幕上有两个控件 - 一个TableView和一个UIPickerView.当您在TableView中选择单个单元格时,您将进入另一个显示服装类型列表的屏幕.从列表中选择单个服装项将带您返回第一个屏幕.根据您的选择,更改UIPickerView中的组件数(1-4),并使用相关数据填充每个组件.
假设您在服装类型列表中有三个项目,并且每个项目在选择时应在UIPickerView中具有一定数量的组件:
皮带 - 3个组件,宽度为100,55,100胸罩 - 3个组件,宽度为55,55,55其他 - 4个组件,宽度为100,100,55,50
场景#1 - 一切都应该如此
1.1 - 您选择"Belt"服装项目,UIPickerView使用3个组件绘制,每个组件中都有相应的Belt数据.组件宽度为100,55,100.
1.2 - 您选择"其他"服装项目,UIPickerView使用4个组件绘制,每个组件中包含相应的其他数据.组件宽度为100,100,55,50.
1.3 - 您选择"Brassiere"服装项目,UIPickerView使用3个组件绘制,每个组件中都有相应的Brassiere数据.组件宽度为55,55,55.
场景#2 - 不重新绘制组件宽度
1.1 - 您选择"Belt"服装项目,UIPickerView使用3个组件绘制,每个组件中都有相应的Belt数据.组件宽度为100,55,100.
1.2 - 您选择"Brassiere"服装项目,UIPickerView使用3个组件绘制,每个组件中都有相应的Brassiere数据.但是,组件宽度仍然是100,55,100,而不是55,55,55.
1.3 - 选择"其他"服装项目,UIPickerView使用4个组件绘制,每个组件中包含相应的其他数据.组件宽度为100,100,55,50.
1.2 - 您选择"Brassiere"服装项目,UIPickerView使用3个组件绘制,每个组件中都有相应的Brassiere数据.组件宽度现在正确 - 55,55,55.
从单步执行代码看起来,只有当UIPickerView中的组件数发生变化时,才会调用UIPickerView的widthForComponent委托方法.
有没有办法强制这种委托方法每次都开火?
更新 - 10.26.09
我使用以下代码在viewWillAppear委托中调用[UIPickerView reloadAllComponents:
-(void)viewWillAppear:(BOOL)animated {
...
self.PopulatePickerArrays; // Populate components based on selection
[sizePicker reloadAllComponents];
...
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
这是情况.我正在审查一些我没有编写的SDK代码,因为我的任务是起草开发人员的文档.在一个类中,在构造函数中,事件处理设置如下:
_engine.ReceiverEvents_OnPosition += OnPosition;
_engine.ConnectionEvents_OnDeviceStatus += OnDeviceStatus;
_engine.ConnectionEvents_OnErrorStatus += OnErrorStatus;
_engine.ReceiverEvents_OnConstellation += OnConstellation;
Run Code Online (Sandbox Code Playgroud)
订购首先是事件提升; 方法 - 呼叫第二.
在另一个类中,在方法(而不是构造函数)中,事件处理设置如下:
_captureManager.PositionLogged += CaptureManager_PositionLogged;
_captureManager.GeometryCaptureStarted += CaptureManager_GeometryCaptureStarted;
Run Code Online (Sandbox Code Playgroud)
排序方法是首先调用Method-To-Call,然后是Event-Raised second.
我的问题是 - 在设置事件处理任意(顺序无关紧要)时是事件引发和方法调用的顺序还是重要(不同的顺序会给你不同的结果)?
提前致谢.
我正在进行一些实验,试图通过对随时间收集的数据进行加权平均来提高iPhone上的GPS准确度.我注意到控制台,iPhone模拟器和iPhone本身的坐标显示有所不同.
我正在运行基本的CoreLocation代码来设置我的位置管理器.
self.locationManager = [[CLLocationManager alloc] init];
[locationManager setDelegate:self];
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
[locationManager startUpdatingLocation];
Run Code Online (Sandbox Code Playgroud)
在我的locationManager中:didUpdateToLocation:fromLocation:方法我使用NSLog以几种格式将坐标写入控制台,然后在我的IBOutlets中显示它们.
NSLog(@"%@", newLocation);
NSLog(@"%f", newLocation.coordinate.latitude);
NSLog(@"%e", newLocation.coordinate.latitude);
NSLog(@"%E", newLocation.coordinate.latitude);
self.latitude.text = [NSString stringWithFormat:@"%f", newLocation.coordinate.latitude];
self.longitude.text = [NSString stringWithFormat:@"%f", newLocation.coordinate.longitude];
self.altitude.text = [NSString stringWithFormat:@"%f", newLocation.altitude];
self.horizontalAccuracy.text = [NSString stringWithFormat:@"%f", newLocation.horizontalAccuracy];
self.verticalAccuracy.text = [NSString stringWithFormat:@"%f", newLocation.verticalAccuracy];
Run Code Online (Sandbox Code Playgroud)
写入控制台的值如下所示.
NSLog(@"%@", ...); | <+42.40334972, -71.27483790> +/- 240.00m (speed -1.00 mps / course -1.00) @ 2010-10-19 12:15:00 GMT
NSLog(@"%f", ...); | 42.403350
NSLog(@"%e", ...); | 4.240335e+01
NSLog(@"%E", ...); | 4.240335E+01
Run Code Online (Sandbox Code Playgroud)
屏幕上显示的纬度和经度如下.
Latitude | …Run Code Online (Sandbox Code Playgroud) iphone ×5
c# ×3
.net ×2
android ×1
boilerplate ×1
calabash ×1
collections ×1
delegates ×1
email ×1
generics ×1
gps ×1
macos ×1
message ×1
mfmailcomposeviewcontroller ×1
objective-c ×1
precision ×1
ruby ×1
scalability ×1
uipickerview ×1
vb.net ×1
xcode ×1