小编4th*_*ace的帖子

区分didSelectRowAtIndexPath和accessoryButtonTappedForRowWithIndexPath

我已经实现了didSelectRowAtIndexPath和accessoryButtonTappedForRowWithIndexPath似乎永远不会触发.但是,即使单击附件,didSelectRowAtIndexPath也会一直触发.这两个不应该是排他性的吗?

iphone cocoa-touch uitableview

6
推荐指数
1
解决办法
3561
查看次数

如何在功能之外使用防护?

是否可以在guard函数外部使用?

以下引发了一个需要使用返回或中断的错误,但在这种情况下是不可能的.

var var1 = String?()
guard let validVar = var1 else {
    print("not nil")
}
Run Code Online (Sandbox Code Playgroud)

swift2 guard-statement

6
推荐指数
1
解决办法
1756
查看次数

为什么NSString属性更改为无效值?

当我在viewDidLoad和viewWillAppear之间移动时,我有一个属性变为无效.我不知道为什么会这样.

我有一个帮助程序类,它获取我的数据库的路径.我在app delegate中分配了这个类.RootViewController获取对appDelegate的引用,如下所示:

//inside .h file
@interface RootViewController : UITableViewController
<UITableViewDelegate, UITableViewDataSource>{
NSArray *controllers;
myAppDelegate *appDelegate;
}

//inside .m file
@implementation RootViewController
@synthesize controllers;

- (void)viewDidLoad {
appDelegate = [[UIApplication sharedApplication] delegate]; 

self.controllers = appDelegate.topicControllers;
[super viewDidLoad];
}
Run Code Online (Sandbox Code Playgroud)

我将鼠标移到appDelegate上以查找数据库助手类和包含数据库路径的属性:

NSPathStore2 * appDelegate.databaseHeper.databasePath  "/Users/userA/Library/Application Support/iPhone Simulator/User/Applications..."
Run Code Online (Sandbox Code Playgroud)

databasePath声明为NSString.为什么它改为NSPathStore2?

当我继续在调试器中发生一些其他奇怪的事情.一旦我进入viewWillAppear,属性值变为"无效",类型返回NSString.虽然我甚至在那里见过UIButton.

为什么它变为无效?我不能再使用变量了.

- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated]; //changes before this line executes
}
Run Code Online (Sandbox Code Playgroud)

我在viewDidLoad和viewWillAppear之间没有做任何事情.以下是在databaseHelper类中分配databasePath的方法,该类在applicationDidFinishLaunching上发生:

- (NSString *) getDBPath {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
return [documentsDir stringByAppendingPathComponent:self.databaseName]; …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa cocoa-touch objective-c

5
推荐指数
1
解决办法
3662
查看次数

为什么Reachability样本应用程序停在这里?

Apple的名为Reachability的示例应用程序显示了如何检测连接.如果你只有wifi而不是互联网,应用程序在下面的第二行停止超过一分钟:

SCNetworkReachabilityFlags reachabilityFlags;
BOOL gotFlags = SCNetworkReachabilityGetFlags(reachabilityRef, &reachabilityFlags);
Run Code Online (Sandbox Code Playgroud)

SCNetworkReachabilityGetFlags来自SystemConfiguration.framework.有关如何绕过这个的任何建议?

iphone objective-c

5
推荐指数
1
解决办法
3908
查看次数

相同应用的iPhone和iPad版本?

我有一个iPhone应用程序,并希望创建它的iPad版本.当您想要iPhone和iPad版本的应用程序时,设置项目的最佳方法是什么?

我没有看到我能够使用相同的代码库,因为iPad版本将具有iPhone版本没有的功能.对于同一个应用程序来说,维护似乎会有两个相似的代码库.

iphone cocoa-touch ipad

5
推荐指数
1
解决办法
3932
查看次数

viewDidAppear用于基于tabbar的应用程序

当特定标签出现时,我想做点什么.意思是,用户单击了选项卡视图的选项卡按钮.发生这种情况时,viewDidAppear不会触发.我怎么能挂钩到标签点击事件?

iphone cocoa-touch uitabbarcontroller uitabbar

5
推荐指数
2
解决办法
3605
查看次数

iTunesArtwork打破发布提交到应用商店

我有一个内置在Xcode4中的iOS 4.3 iPhone应用程序,我通过Application Loader应用程序提交.我一直收到这个错误:

在顶级应用包装器下找不到Info.plist中指定的图标:iTunesArtwork

我有以下几套:

  • 根文件夹中的iTunesArtwork(没有扩展名的JPEG)
  • 资源文件中的iTunesArtwork参考
  • 512x512图像尺寸
  • '项目0; 在info.plist中的'Icon Files'数组下

据我所知,上面的内容与iTunesArtwork完全一样.我错过了哪些想法?

iphone objective-c ios4 ios xcode4

5
推荐指数
2
解决办法
8300
查看次数

如何使用相同的 MVC 控制器方法处理数组或单个对象?

我有一个 ActionResult 方法,它接受列表作为参数:

[HttpPost]
public ActionResult MyMethod (List<ClassA> json)
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

这会将传入的 json 字符串绑定到已填充的 ClassA 对象的通用列表。

问题是有时传入的 json 只是一个 json 对象,而不是 json 对象数组。

有什么方法可以抢占这个,这样我就可以直接绑定到 ClassA 与 List 吗?或者我可以使用其他一些技术吗?

以下是 JSON 的发送方式(作为数组):

var myjsonarray = [{
  "ID": "1",
  "FirstName": "John",
  "LastName": "Doe",
}, {
  "ID": "2",
  "FirstName": "Jane",
  "LastName": "Doe",
}];

$.ajax({
 type: "POST",
 contentType: "application/json; charset=utf-8",
 url: "/Home/MyPage",
 data: JSON.stringify(myjsonarray),
 dataType: 'json'
});
Run Code Online (Sandbox Code Playgroud)

以上处理没问题。这也有效:

var myjsonarray = [{
  "ID": "1",
  "FirstName": "John",
  "LastName": "Doe",
}];
Run Code Online (Sandbox Code Playgroud)

但是当我作为未包装在数组中的单个对象发送时:

var myjsonarray = …
Run Code Online (Sandbox Code Playgroud)

c# json asp.net-mvc-4

5
推荐指数
1
解决办法
1704
查看次数

如何序列化第三方课程?

我有一个使用第三方库的WCF服务。该库不可序列化。

我有一个可序列化的自定义类型,还包含一个来自第三方库的类作为属性。看起来像:

MyClass.ThirdPartyClass
Run Code Online (Sandbox Code Playgroud)

问题是当我从服务中发送MyClass时,ThirdPartyClass释放了我在服务中分配给它的值。由于我没有ThirdPartyClass的来源,因此可以将其标记为可序列化的。

是否有某种方法可以将ThirdPartyClass标记为可序列化,或以其他方式使其保留值?

.net c# wcf

5
推荐指数
1
解决办法
2196
查看次数

try/catch 是否在 Task.Factory.StartNew 之外工作?

以下是否会捕获 StartNew() 内部发生的异常?似乎没有。

   try
   {
      Task.Factory.StartNew(() =>
      {
       //do something
      });
    }
    catch(Exception ex)
    {
      //log it
    }
Run Code Online (Sandbox Code Playgroud)

.net c#-4.0

5
推荐指数
1
解决办法
295
查看次数