我想确定用户最初从Google Play商店购买的Android应用版本.我需要这些信息来帮助支持从付费应用模式转变为免费增值模式.
在iOS7及更高版本中,您可以通过使用[NSBundle appStoreReceiptURL]
返回可以检查的App Store收据的URL 来执行此操作.
Google API中是否有相应的内容?
出于某种原因,似乎Add
a HashSet
上的Contains
操作比元素已经存在时的操作要慢HashSet
.
这是证明:
Stopwatch watch = new Stopwatch();
int size = 10000;
int iterations = 10000;
var s = new HashSet<int>();
for (int i = 0; i < size; i++) {
s.Add(i);
}
Console.WriteLine(watch.Time(() =>
{
for (int i = 0; i < size; i++) {
s.Add(i);
}
}, iterations));
s = new HashSet<int>();
for (int i = 0; i < size; i++) {
s.Add(i);
}
// outputs: 47,074,764
Console.WriteLine(watch.Time(() =>
{
for …
Run Code Online (Sandbox Code Playgroud) 我正在使用新的Windows Phone 8 LongListSelector
控件,它将其ItemsControl
分配给a List<Group<object>>
:
List<Group<PlacePoint>> searchResults;
async void doSearch()
{
this.searchResults = await SearchHelper.Instance.getSearchResults(txtSearchTerm.Text);
longList.ItemsSource = this.searchResults;
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我第二次搜索时,重新设置.ItemsSource属性没有任何效果,控件只显示旧的List.
如何更改绑定?
在我的Windows 8 Metro风格应用程序中,我将Listview绑定到ObservableCollection,我希望每个ListViewItem的背景颜色交替(白色,灰色,白色等)
<ListView x:Name="stopsListView" ItemsSource="{Binding}" >
<ListView.ItemTemplate>
<DataTemplate>
<Grid Height="66" >
<TextBlock Text="{Binding Title}" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
Run Code Online (Sandbox Code Playgroud)
在WPF中,这是使用带触发器的样式完成的 - 请参阅此页面.
你如何在Metro应用程序中实现这一目标?
更新:
在下面给出了正确答案之后,我离开并实际编码了它.以下是需要它的人的一些代码:
值转换器类代码:
public class AltBackgroundConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
if (!(value is int)) return null;
int index = (int)value;
if (index % 2 == 0)
return Colors.White;
else
return Colors.LightGray;
}
// No need to implement converting back on a one-way binding
public object …
Run Code Online (Sandbox Code Playgroud) 我在Visual Studio C#.NET解决方案中有类似以下设置:
项目1 - TrainDisplay - 显示火车到达的WinForms应用程序.
项目2 - TrainFetcher - 是一个可重复使用的类库,用于获取有关火车的数据.
项目3 - TrainsDataModel是一个数据模型,包含所有其他项目共有的类,例如Train.cs,TrainRoute.cs等.
每个都有以下参考:
项目1:参考文献2和3
项目2:参考文献3
以这种方式使用引用是不是很糟糕; 即项目1最终是否有两个对项目3的引用; 一个直接,一个通过项目2?
我试图用来Task.WhenAll
等待完成多个任务.
我的代码如下 - 它应该启动多个异步任务,每个异步任务检索一个总线路由,然后将它们添加到本地阵列.但是,Task.WhenAll(...)
立即返回,并且本地路由数组的计数为零.这看起来很奇怪,因为我希望await
每个语句中的各种语句Task
意味着流程被暂停,并且在Task
它完成之前不会返回.
List<Task> monitoredTasks = new List<Task>();
foreach (BusRouteIdentifier bri in stop.services)
{
BusRouteRequest req = new BusRouteRequest(bri.id);
// Start a new task to fetch the route for each stop
Task getRouteTask = Task.Factory.StartNew(async () =>
{
var route = await BusDataProviderManager.DataProvider.DataBroker.getRoute(req);
// Add the route to our array (on UI thread as it's observed)
await dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, delegate
{
this.routes.Add(route);
});
});
// Store the task in our …
Run Code Online (Sandbox Code Playgroud) 我是MySQL的新手,我试图使用这个语句选择一组不同的行:
SELECT DISTINCT sp.atcoCode, sp.name, sp.longitude, sp.latitude
FROM `transportdata`.stoppoints as sp
INNER JOIN `vehicledata`.gtfsstop_times as st ON sp.atcoCode = st.fk_atco_code
INNER JOIN `vehicledata`.gtfstrips as trip ON st.trip_id = trip.trip_id
INNER JOIN `vehicledata`.gtfsroutes as route ON trip.route_id = route.route_id
INNER JOIN `vehicledata`.gtfsagencys as agency ON route.agency_id = agency.agency_id
WHERE agency.agency_id IN (1,2,3,4);
Run Code Online (Sandbox Code Playgroud)
然而,选择声明大约需要10分钟,因此有些事情正在发生.
一个重要因素是表格gtfsstop_times
很大.(约2.5亿条记录)
索引似乎设置得当; 所有上述连接都使用索引列.表格大小大致如下:
gtfsagencys - 4 rows
gtfsroutes - 56,000 rows
gtfstrips - 5,500,000 rows
gtfsstop_times - 250,000,000 rows
`transportdata`.stoppoints - 400,000 rows
Run Code Online (Sandbox Code Playgroud)
服务器有22Gb的内存,我将InnoDB缓冲池设置为8G,我使用的是MySQL 5.6.
任何人都能看到让这种运行更快的方法吗?或者确实,甚至! …
我们现在有一个iOS应用程序在售,我们正在使用相同的代码库在XCode 5 DP上开发iOS 7版本.
我们现在真的需要为现有的iOS 5/6客户发布更新,当然,当我们将项目重新加载到XCode 4时,它会抱怨不存在的属性,因为Base SDK然后变成iOS6而不是7:
// Only run this bit on iOS 7
if ([self respondsToSelector:@selector(setFooForExtendedLayout:)])
{
self.fooForExtendedLayout = UIFooEdgeLeft | UIFooEdgeRight;
}
float bottomOffset = 0;
// Only run this bit on iOS 7, else leave bottomOffset as 0
if ([self.hostController respondsToSelector:@selector(bottomLayoutFoo)])
bottomOffset = self.hostController.bottomLayoutFoo.length;
Run Code Online (Sandbox Code Playgroud)
(混淆以避免破坏NDA)
XCode错误:
在'UIViewController*'类型的对象上找不到属性'fooForExtendedLayout'
使用未声明的标识符'UIFooEdgeLeft'
使用未声明的标识符'UIFooEdgeRight'
在'UIViewController*'类型的对象上找不到属性'bottomLayoutFoo'
评论这个新代码会很痛苦.重新编写它以便与旧的和新的Base SDK兼容的正确方法是什么,并且现在提交它(通过XCode 4并针对iOS 6 SDK构建)会冒任何类型的App Store拒绝风险?
经过几次深夜的调试噩梦之后,每次我要导出一个已签名/未签名的.APK上传到App Store时,我都会在Eclipse中点击"Project - > Clean ..."的偏执习惯. .我只能假设,在遥远的过去的某个时间,它似乎是调试一些外部JAR或其他方面的必要保障.
这为整个导出过程增加了几个繁琐的时间,特别是对于多个构建和/或应用程序.
这是一个必要的步骤,还是只是偏执?
我正在尝试使用XAML为Metro风格的应用程序重新设置Slider控件的样式 - 它应该看起来像一个红色的总线,用户沿着灰色条带拖动,即:
我使用Visual Studio提取了样式并重新设置了Slider控件的样式,如下所示.不幸的是,每当我将鼠标悬停在滑块上时,拇指就会被灰色矩形替换,即使我已经从VisualState"PointerOver"组中专门删除了所有Storyboard项目.
我错过了什么?XAML在下面.如果我需要修改另一个模板(例如Thumb?),那么请提供有关如何提取此模板的步骤,因为除了下面的那个之外,Visual Studio似乎不再向我公开任何控件模板.
<Style x:Key="BusRouteSliderStyle" TargetType="Slider">
<Setter Property="Background" Value="{StaticResource SliderTrackBackgroundThemeBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource SliderBorderThemeBrush}"/>
<Setter Property="BorderThickness" Value="{StaticResource SliderBorderThemeThickness}"/>
<Setter Property="Foreground" Value="{StaticResource SliderTrackDecreaseBackgroundThemeBrush}"/>
<Setter Property="ManipulationMode" Value="None"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Slider">
<Grid Margin="{TemplateBinding Padding}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="Pressed">
<Storyboard>
</Storyboard>
</VisualState>
<VisualState x:Name="Disabled">
<Storyboard>
</Storyboard>
</VisualState>
<VisualState x:Name="PointerOver">
<Storyboard>
</Storyboard>
</VisualState>
</VisualStateGroup>
<VisualStateGroup x:Name="FocusStates">
<VisualState x:Name="Focused">
<Storyboard>
<DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualWhiteHorizontal"/>
<DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualBlackHorizontal"/>
<DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualWhiteVertical"/>
<DoubleAnimation Duration="0" …
Run Code Online (Sandbox Code Playgroud) 我正在使用全新的Windows Phone 8 Map控件,但遇到了一个问题:我需要获取地图边界的LocationRectangle,换句话说就是Latitude span和Longitude span.
使用Bing Maps控件,您可以执行以下操作:
LocationRect bounds = map.Bounds;
Run Code Online (Sandbox Code Playgroud)
...但是,这个新控件中似乎没有相关字段.任何人都可以提供帮助,或者我是否需要对各种缩放级别进行反向工程并根据中心点,缩放级别和像素高度/宽度进行处理?
我在这里找到了Jon Skeet的一个名为'PclPal' 的演示- 由于我不认识的一些C#语法,它拒绝在Visual Studio 2013中编译.
其中两个.cs文件似乎在实际的类声明中有构造函数逻辑,如下所示:
public class Profile(string path, IEnumerable<SupportedRuntime> runtimes)
{
public string Name { get; } = System.IO.Path.GetFileName(path);
public String Path { get; } = path;
public IReadOnlyCollection<SupportedRuntime> SupportedRuntimes { get; } = runtimes.ToList().AsReadOnly();
Run Code Online (Sandbox Code Playgroud)
这是什么?这是C#的未来版本吗?我还没有学到什么?
编辑:我不认为这是一个重复的问题.链接的问题是"为什么主要构造函数不能编译?",而这个问题实际上有效地说"这些事情本来就是主要的构造者?"
.net ×6
c# ×6
xaml ×4
android ×2
performance ×2
winrt-xaml ×2
.net-4.5 ×1
apk ×1
architecture ×1
async-await ×1
asynchronous ×1
constructor ×1
eclipse ×1
google-play ×1
hashset ×1
ios ×1
ios6 ×1
java ×1
mysql ×1
reference ×1
sdk ×1
xcode ×1